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/Makefile328
-rw-r--r--el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.xml4712
-rw-r--r--el_GR.ISO8859-7/books/handbook/audit/chapter.xml721
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/chapter.xml2875
-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.xml541
-rw-r--r--el_GR.ISO8859-7/books/handbook/book.xml328
-rw-r--r--el_GR.ISO8859-7/books/handbook/boot/chapter.xml1066
-rw-r--r--el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.xml2776
-rw-r--r--el_GR.ISO8859-7/books/handbook/chapters.ent78
-rw-r--r--el_GR.ISO8859-7/books/handbook/colophon.xml27
-rw-r--r--el_GR.ISO8859-7/books/handbook/config/chapter.xml3221
-rw-r--r--el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml3381
-rw-r--r--el_GR.ISO8859-7/books/handbook/desktop/chapter.xml1390
-rw-r--r--el_GR.ISO8859-7/books/handbook/disks/chapter.xml4015
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/chapter.xml400
-rw-r--r--el_GR.ISO8859-7/books/handbook/eresources/chapter.xml2207
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/chapter.xml919
-rw-r--r--el_GR.ISO8859-7/books/handbook/firewalls/chapter.xml3507
-rw-r--r--el_GR.ISO8859-7/books/handbook/geom/chapter.xml996
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/chapter.xml5166
-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.xml1284
-rw-r--r--el_GR.ISO8859-7/books/handbook/jails/chapter.xml1018
-rw-r--r--el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.xml1613
-rw-r--r--el_GR.ISO8859-7/books/handbook/l10n/chapter.xml1006
-rw-r--r--el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml1415
-rw-r--r--el_GR.ISO8859-7/books/handbook/mac/chapter.xml2093
-rw-r--r--el_GR.ISO8859-7/books/handbook/mail/chapter.xml2324
-rw-r--r--el_GR.ISO8859-7/books/handbook/mirrors/chapter.xml3388
-rw-r--r--el_GR.ISO8859-7/books/handbook/multimedia/chapter.xml1970
-rw-r--r--el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml4758
-rw-r--r--el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.xml50
-rw-r--r--el_GR.ISO8859-7/books/handbook/ports/chapter.xml1606
-rw-r--r--el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml3266
-rw-r--r--el_GR.ISO8859-7/books/handbook/preface/preface.xml816
-rw-r--r--el_GR.ISO8859-7/books/handbook/printing/chapter.xml5171
-rw-r--r--el_GR.ISO8859-7/books/handbook/security/chapter.xml4899
-rw-r--r--el_GR.ISO8859-7/books/handbook/serialcomms/chapter.xml3125
-rw-r--r--el_GR.ISO8859-7/books/handbook/txtfiles.ent79
-rw-r--r--el_GR.ISO8859-7/books/handbook/users/chapter.xml1085
-rw-r--r--el_GR.ISO8859-7/books/handbook/vinum/chapter.xml1343
-rw-r--r--el_GR.ISO8859-7/books/handbook/virtualization/chapter.xml1291
-rw-r--r--el_GR.ISO8859-7/books/handbook/x11/chapter.xml1796
54 files changed, 0 insertions, 84220 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile
deleted file mode 100644
index 465ebae637..0000000000
--- a/el_GR.ISO8859-7/books/handbook/Makefile
+++ /dev/null
@@ -1,328 +0,0 @@
-#
-# $FreeBSD$
-#
-# Μορφοποίηση του Εγχειριδίου του FreeBSD
-#
-# %SOURCE% en_US.ISO8859-1/books/handbook/Makefile
-# %SRCID% 43126
-#
-
-# ------------------------------------------------------------------------
-#
-# Για να προσθέσετε ένα νέο κεφάλαιο στο Εγχειρίδιο:
-#
-# - Ενημερώστε αυτό το Makefile, το chapters.ent και το book.xml
-# - Προσθέστε μια σύντομη περιγραφή του κεφαλαίου στο preface/preface.xml
-#
-# ------------------------------------------------------------------------
-
-.PATH: ${.CURDIR}/../../share/xml/glossary
-
-MAINTAINER= doc@FreeBSD.org
-
-DOC?= book
-
-FORMATS?= html-split
-
-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/pxe-nfs.png
-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+= 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 περιέχει όλα τα XML αρχεία που αποτελούν μέρη του κειμένου.
-# Αλλαγές σε οποιοδήποτε από αυτά τα αρχεία προκαλούν rebuild.
-#
-
-# XML content
-SRCS+= audit/chapter.xml
-SRCS+= book.xml
-SRCS+= bsdinstall/chapter.xml
-SRCS+= colophon.xml
-SRCS+= dtrace/chapter.xml
-SRCS+= advanced-networking/chapter.xml
-SRCS+= basics/chapter.xml
-SRCS+= bibliography/chapter.xml
-SRCS+= boot/chapter.xml
-SRCS+= config/chapter.xml
-SRCS+= cutting-edge/chapter.xml
-SRCS+= desktop/chapter.xml
-SRCS+= disks/chapter.xml
-SRCS+= eresources/chapter.xml
-SRCS+= firewalls/chapter.xml
-SRCS+= filesystems/chapter.xml
-SRCS+= geom/chapter.xml
-SRCS+= install/chapter.xml
-SRCS+= introduction/chapter.xml
-SRCS+= jails/chapter.xml
-SRCS+= kernelconfig/chapter.xml
-SRCS+= l10n/chapter.xml
-SRCS+= linuxemu/chapter.xml
-SRCS+= mac/chapter.xml
-SRCS+= mail/chapter.xml
-SRCS+= mirrors/chapter.xml
-SRCS+= multimedia/chapter.xml
-SRCS+= network-servers/chapter.xml
-SRCS+= pgpkeys/chapter.xml
-SRCS+= ports/chapter.xml
-SRCS+= ppp-and-slip/chapter.xml
-SRCS+= preface/preface.xml
-SRCS+= printing/chapter.xml
-SRCS+= security/chapter.xml
-SRCS+= serialcomms/chapter.xml
-# Users chapter stays in the Greek Build until merged with basics
-SRCS+= users/chapter.xml
-SRCS+= virtualization/chapter.xml
-SRCS+= x11/chapter.xml
-
-# Entities
-SRCS+= chapters.ent
-
-SYMLINKS= ${DESTDIR} index.html handbook.html
-
-# Turn on all the chapters.
-CHAPTERS?= ${SRCS:M*chapter.xml}
-
-XMLFLAGS+= ${CHAPTERS:S/\/chapter.xml//:S/^/-i chap./}
-XMLFLAGS+= -i chap.freebsd-glossary
-
-URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
-
-#
-# rules generating lists of mirror site from XML database.
-#
-XMLDOCS= lastmod:::mirrors.lastmod.inc \
- mirrors-ftp-index:::mirrors.xml.ftp.index.inc \
- mirrors-ftp:::mirrors.xml.ftp.inc \
- mirrors-cvsup-index:::mirrors.xml.cvsup.index.inc \
- mirrors-cvsup:::mirrors.xml.cvsup.inc \
- eresources-index:::eresources.xml.www.index.inc \
- eresources:::eresources.xml.www.inc
-DEPENDSET.DEFAULT= transtable mirror
-XSLT.DEFAULT= ${XSL_MIRRORS}
-XML.DEFAULT= ${XML_MIRRORS}
-
-PARAMS.lastmod+= --param 'target' "'lastmod'"
-PARAMS.mirrors-ftp-index+= --param 'type' "'ftp'" \
- --param 'proto' "'ftp'" \
- --param 'target' "'index'"
-PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
- --param 'proto' "'ftp'" \
- --param 'target' "'handbook/mirrors/chapter.xml'"
-PARAMS.mirrors-cvsup-index+= --param 'type' "'cvsup'" \
- --param 'proto' "'cvsup'" \
- --param 'target' "'index'"
-PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
- --param 'proto' "'cvsup'" \
- --param 'target' "'handbook/mirrors/chapter.xml'"
-PARAMS.eresources-index+= --param 'type' "'www'" \
- --param 'proto' "'http'" \
- --param 'target' "'index'"
-PARAMS.eresources+= --param 'type' "'www'" \
- --param 'proto' "'http'" \
- --param 'target' "'handbook/eresources/chapter.xml'"
-
-EXTRAS= mirrors.lastmod.inc \
- mirrors.xml.ftp.inc \
- mirrors.xml.ftp.index.inc \
- mirrors.xml.cvsup.inc \
- mirrors.xml.cvsup.index.inc \
- eresources.xml.www.inc \
- eresources.xml.www.index.inc
-
-XMLDOCS_NO_SRCS=YES
-CLEANFILES+= ${EXTRAS}
-
-_extras: ${EXTRAS}
-mirrors/chapter.xml: ${EXTRAS}
-
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.xml b/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.xml
deleted file mode 100644
index 7598176641..0000000000
--- a/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.xml
+++ /dev/null
@@ -1,4712 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Προχωρημένα Θέματα Δικτύωσης
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/advanced-networking/chapter.xml
- %SRCID% 1.1
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="advanced-networking">
- <title>Προχωρημένα Θέματα Δικτύωσης</title>
-
- <sect1 xml: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 xml:id="network-routing">
- <info><title>Gateways and Routes</title>
- <authorgroup>
- <author><personname><firstname>Coranth</firstname><surname>Gryphon</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 =&gt;
-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 <systemitem>localhost</systemitem> 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 <filename>lo0</filename>,
- 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 <systemitem class="etheraddress">0:e0:</systemitem>. These are Ethernet
- hardware addresses, which are also known as MAC addresses.
- FreeBSD will automatically identify any hosts
- (<systemitem>test0</systemitem> in the example) on the local Ethernet
- and add a route for that host, directly to it over the
- Ethernet interface, <filename>ed0</filename>. 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 (<systemitem class="ipaddress">10.20.30.255</systemitem> is the broadcast address for the
- subnet <systemitem class="ipaddress">10.20.30</systemitem>, and <systemitem class="fqdomainname">example.com</systemitem> 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 (<filename>lo0</filename>)
- 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
- <filename>lo0</filename> 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 <systemitem class="ipaddress">224</systemitem>) 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 xml: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 <systemitem>Local1</systemitem> and
- <systemitem>Local2</systemitem> are at your site.
- <systemitem>Local1</systemitem> 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 <systemitem>T1-GW</systemitem> to be the default gateway for
- <systemitem>Local1</systemitem>, 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 <systemitem>T1-GW</systemitem>
- 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 <systemitem class="ipaddress">X.X.X.1</systemitem> as the gateway address for your local
- network. So (using the same example), if your local class-C address
- space was <systemitem class="ipaddress">10.20.30</systemitem> and your ISP was
- using <systemitem class="ipaddress">10.9.9</systemitem> 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
- <systemitem>Local2</systemitem> 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 xml: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
- <package>net/zebra</package> 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>
- <info><title>Setting Up Static Routes</title>
- <authorgroup>
- <author><personname><firstname>Al</firstname><surname>Hoang</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
- <!-- Feb 2004 -->
-
-
- <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, <systemitem>RouterA</systemitem> is our &os;
- machine that is acting as a router to the rest of the
- Internet. It has a default route set to <systemitem class="ipaddress">10.0.0.1</systemitem> which allows it to connect
- with the outside world. We will assume that
- <systemitem>RouterB</systemitem> 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
- <systemitem>RouterB</systemitem> using <systemitem class="ipaddress">192.168.1.1</systemitem> as the gateway.)</para>
-
- <para>If we look at the routing table for
- <systemitem>RouterA</systemitem> 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 <systemitem>RouterA</systemitem>
- will not be able to reach our Internal Net 2. It does not
- have a route for <systemitem class="ipaddress">192.168.2.0/24</systemitem>. One way to alleviate
- this is to manually add the route. The following command
- would add the Internal Net 2 network to
- <systemitem>RouterA</systemitem>'s routing table using <systemitem class="ipaddress">192.168.1.2</systemitem> 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 <systemitem>RouterA</systemitem> can reach any hosts on the
- <systemitem class="ipaddress">192.168.2.0/24</systemitem>
- 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_internalnet2</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 <systemitem class="ipaddress">192.168.0.0/24</systemitem> and <systemitem class="ipaddress">192.168.1.0/24</systemitem> 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 xml:id="network-wireless">
- <info><title>Wireless Networking</title>
- <authorgroup>
- <author><personname><othername>Loader</othername></personname></author>
-
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname></author>
-
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
- </authorgroup>
- </info>
-
-
- <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 xml: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 ath0 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 ath0 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 <filename>ath0</filename>:</para>
-
- <screen>&prompt.root; <userinput>ifconfig ath0</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>
-
- <sect4 xml: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 xml: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>/etc/rc.d/netif 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 ath0 -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 ath0</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 ath0</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 ath0 inet 192.168.0.100 netmask 255.255.255.0</userinput>
-&prompt.root; <userinput>ifconfig ath0</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 your_default_router</userinput>
-&prompt.root; <userinput>echo "nameserver your_DNS_server" &gt;&gt; /etc/resolv.conf</userinput></screen>
- </sect5>
-
- <sect5 xml: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 <link xlink:href="http://www.wi-fi.org/">Wi-Fi alliance</link>.
- 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 xml:id="co-tls-ssid"/>
- proto=RSN <co xml:id="co-tls-proto"/>
- key_mgmt=WPA-EAP <co xml:id="co-tls-kmgmt"/>
- eap=TLS <co xml:id="co-tls-eap"/>
- identity="loader" <co xml:id="co-tls-id"/>
- ca_cert="/etc/certs/cacert.pem" <co xml:id="co-tls-cacert"/>
- client_cert="/etc/certs/clientcert.pem" <co xml:id="co-tls-clientcert"/>
- private_key="/etc/certs/clientkey.pem" <co xml:id="co-tls-pkey"/>
- private_key_passwd="freebsdmallclient" <co xml: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 xml: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 xml:id="co-ttls-eap"/>
- identity="test" <co xml:id="co-ttls-id"/>
- password="test" <co xml:id="co-ttls-passwd"/>
- ca_cert="/etc/certs/cacert.pem" <co xml:id="co-ttls-cacert"/>
- phase2="auth=MD5" <co xml: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 xml: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 xml:id="co-peap-eap"/>
- identity="test" <co xml:id="co-peap-id"/>
- password="test" <co xml:id="co-peap-passwd"/>
- ca_cert="/etc/certs/cacert.pem" <co xml:id="co-peap-cacert"/>
- phase1="peaplabel=0" <co xml:id="co-peap-pha1"/>
- phase2="auth=MSCHAPV2" <co xml: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 xml: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 ath0 inet 192.168.1.100 netmask 255.255.255.0 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 ath0 -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 <systemitem>A</systemitem> and the machine
- <systemitem>B</systemitem> we will just need to choose two IP adresses
- and a SSID.</para>
-
- <para>On the box <systemitem>A</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>ifconfig ath0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc</userinput>
-&prompt.root; <userinput>ifconfig ath0</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 <systemitem>B</systemitem>, we should be able to detect
- <systemitem>A</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>ifconfig ath0 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 <systemitem>A</systemitem> is in ad-hoc mode. We just have to
- configure <systemitem>B</systemitem> with a different IP
- address:</para>
-
- <screen>&prompt.root; <userinput>ifconfig ath0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap mediaopt adhoc</userinput>
-&prompt.root; <userinput>ifconfig ath0</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 <systemitem>A</systemitem> and <systemitem>B</systemitem> 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 ath0 +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 xml:id="network-bluetooth">
- <info><title>Bluetooth</title>
- <authorgroup>
- <author><personname><firstname>Pav</firstname><surname>Lucistnik</surname></personname><contrib>Written by </contrib><affiliation>
- <address><email>pav@FreeBSD.org</email></address>
- </affiliation></author>
- </authorgroup>
- </info>
-
-
- <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>
-
- <sect2>
- <title>Host Controller Interface (HCI)</title>
-
- <indexterm><primary>HCI</primary></indexterm>
-
- <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>
-
- <sect2>
- <title>Logical Link Control and Adaptation Protocol (L2CAP)</title>
-
- <indexterm><primary>L2CAP</primary></indexterm>
-
- <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>
-
- <sect2>
- <title>RFCOMM Protocol</title>
-
- <indexterm><primary>RFCOMM</primary></indexterm>
-
- <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>
-
- <sect2>
- <title>Pairing of Devices</title>
-
- <indexterm><primary>pairing</primary></indexterm>
-
- <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>
-
- <sect2>
- <title>Service Discovery Protocol (SDP)</title>
-
- <indexterm><primary>SDP</primary></indexterm>
-
- <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>
-
- <sect2>
- <title>OBEX Object Push (OPUSH) Profile</title>
-
- <indexterm><primary>OBEX</primary></indexterm>
-
- <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
- <package>comms/obexapp</package> 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
- <package>comms/hcidump</package> 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 xml:id="network-bridging">
- <info><title>Bridging</title>
- <authorgroup>
- <author><personname><firstname>Steve</firstname><surname>Peterson</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 <systemitem>A</systemitem> for file service, and the Production users
- are on server <systemitem>B</systemitem>. 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 xml:id="network-diskless">
- <info><title>Diskless Operation</title>
- <authorgroup>
- <author><personname><firstname>Jean-Fran&ccedil;ois</firstname><surname>Dock&egrave;s</surname></personname><contrib>Updated by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Alex</firstname><surname>Dupre</surname></personname><contrib>Reorganized and enhanced by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 (<package>net/etherboot</package>) 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
- <package>net/isc-dhcp3-server</package> 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 <systemitem>margaux</systemitem>
- uses <application>Etherboot</application> and host
- <systemitem>corbieres</systemitem> 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 xml: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 xml:id="co-dhcp-next-server"/>
- filename "/data/misc/kernel.diskless"; <co xml:id="co-dhcp-filename"/>
- option root-path "192.168.4.4:/data/misc/diskless"; <co xml: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
- margaux</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>/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><link xlink:href="http://etherboot.sourceforge.net">Etherboot's Web
- site</link> contains
- <link xlink:href="http://etherboot.sourceforge.net/doc/html/userman/t1.html">
- extensive documentation</link> 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 <package>net/etherboot</package> 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/devicetype.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=/path/to/swapfile bs=1k count=1 oseek=100000</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 xml:id="network-isdn">
- <title>ISDN</title>
-
- <indexterm>
- <primary>ISDN</primary>
- </indexterm>
-
- <para>A good resource for information on ISDN technology and hardware is
- <link xlink:href="http://www.alumni.caltech.edu/~dank/isdn/">Dan Kegel's ISDN
- Page</link>.</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 xml:id="network-isdn-cards">
- <info><title>ISDN Cards</title>
- <authorgroup>
- <author><personname><firstname>Hellmuth</firstname><surname>Michaelis</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 <link xlink:href="http://www.freebsd-support.de/i4b/">homepage of
- isdn4bsd</link> which also has pointers to hints, erratas and
- much more documentation such as the <link xlink:href="http://people.FreeBSD.org/~hm/">isdn4bsd
- handbook</link>.</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 <link xlink:href="&url.articles.serial-uart;/index.html">FreeBSD Serial
- Hardware</link> 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 <link xlink:href="&url.base;/search/index.html">archives</link> 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 xml:id="network-natd">
- <info><title>Network Address Translation</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <sect2 xml: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 xml: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 xml:id="network-natdkernconfiguration">
- <title>Configuration</title>
-
- <indexterm>
- <primary>kernel</primary>
- <secondary>configuration</secondary>
- </indexterm>
-
- <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 xml:id="co-natd-gateway-enable"/>
-firewall_enable="YES" <co xml:id="co-natd-firewall-enable"/>
-firewall_type="OPEN" <co xml:id="co-natd-firewall-type"/>
-natd_enable="YES"
-natd_interface="<replaceable>fxp0</replaceable>" <co xml:id="co-natd-natd-interface"/>
-natd_flags="" <co xml: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 <link xlink:href="ftp://ftp.isi.edu/in-notes/rfc1918.txt">RFC 1918</link>
- and have a default gateway of the <application>natd</application> machine's internal IP
- address.</para>
-
- <para>For example, client <systemitem>A</systemitem> and
- <systemitem>B</systemitem> behind the LAN have IP addresses of <systemitem class="ipaddress">192.168.0.2</systemitem> and <systemitem class="ipaddress">192.168.0.3</systemitem>, while the natd machine's
- LAN interface has an IP address of <systemitem class="ipaddress">192.168.0.1</systemitem>. Client <systemitem>A</systemitem>
- and <systemitem>B</systemitem>'s default gateway must be set to that
- of the <application>natd</application> machine, <systemitem class="ipaddress">192.168.0.1</systemitem>. 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 xml: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 <systemitem>A</systemitem>, and a web server runs
- on client <systemitem>B</systemitem>. 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 <systemitem>A</systemitem>.</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 xml: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 <systemitem class="ipaddress">128.1.1.1</systemitem>,
- <systemitem class="ipaddress">128.1.1.2</systemitem>, and
- <systemitem class="ipaddress">128.1.1.3</systemitem> belong to the <application>natd</application> gateway
- machine. <systemitem class="ipaddress">128.1.1.1</systemitem> can be used
- as the <application>natd</application> gateway machine's external IP address, while
- <systemitem class="ipaddress">128.1.1.2</systemitem> and
- <systemitem class="ipaddress">128.1.1.3</systemitem> are forwarded back to LAN
- clients <systemitem>A</systemitem> and <systemitem>B</systemitem>.</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 xml: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 xml: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 xml: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 <systemitem class="username">root</systemitem>. For example, if you want to connect
- the host <systemitem>host1</systemitem> with another machine <systemitem>host2</systemitem>:</para>
-
- <programlisting> host1 &lt;-----&gt; host2
-IP Address 10.0.0.1 10.0.0.2</programlisting>
-
- <para>Configure the interface on <systemitem>host1</systemitem> by doing:</para>
-
- <screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.1 10.0.0.2</userinput></screen>
-
- <para>Configure the interface on <systemitem>host2</systemitem> 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 <systemitem>host1</systemitem>:</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 xml:id="network-ipv6">
- <info><title>IPv6</title>
- <authorgroup>
- <author><personname><firstname>Aaron</firstname><surname>Kaplan</surname></personname><contrib>Originally Written by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Restructured and Added by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Brad</firstname><surname>Davis</surname></personname><contrib>Extended by </contrib></author>
- </authorgroup>
-
- </info>
-
-
- <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
- (<systemitem class="ipaddress">10.0.0.0/8</systemitem>,
- <systemitem class="ipaddress">172.16.0.0/12</systemitem>, and
- <systemitem class="ipaddress">192.168.0.0/16</systemitem>)
- 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 (<link xlink:href="http://www.ietf.org/rfc/rfc2462.txt">RFC2462</link>)</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 <link xlink:href="http://playground.sun.com/pub/ipng/html/ipng-main.html">playground.sun.com</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.kame.net">KAME.net</link></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 <systemitem class="ipaddress">xxx.xxx.xxx.255</systemitem>) 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><systemitem>::</systemitem></entry>
- <entry>128 bits</entry>
- <entry>unspecified</entry>
- <entry>cf. <systemitem class="ipaddress">0.0.0.0</systemitem> in
- IPv4</entry>
- </row>
-
- <row>
- <entry><systemitem>::1</systemitem></entry>
- <entry>128 bits</entry>
- <entry>loopback address</entry>
- <entry>cf. <systemitem class="ipaddress">127.0.0.1</systemitem> in
- IPv4</entry>
- </row>
-
- <row>
- <entry><systemitem>::00:xx:xx:xx:xx</systemitem></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><systemitem>::ff:xx:xx:xx:xx</systemitem></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><systemitem>fe80::</systemitem> - <systemitem>feb::</systemitem></entry>
- <entry>10 bits</entry>
- <entry>link-local</entry>
- <entry>cf. loopback address in IPv4</entry>
- </row>
-
- <row>
- <entry><systemitem>fec0::</systemitem> - <systemitem>fef::</systemitem></entry>
- <entry>10 bits</entry>
- <entry>site-local</entry>
- <entry>&nbsp;</entry>
- </row>
-
- <row>
- <entry><systemitem>ff::</systemitem></entry>
- <entry>8 bits</entry>
- <entry>multicast</entry>
- <entry>&nbsp;</entry>
- </row>
-
- <row>
- <entry><systemitem>001</systemitem> (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: <systemitem>x:x:x:x:x:x:x:x</systemitem>, each
- <quote>x</quote> being a 16 Bit hex value. For example
- <systemitem>FEBC:A574:382B:23C1:AA49:4592:4EFE:9982</systemitem></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 <systemitem>fe80::1</systemitem>
- corresponds to the canonical form
- <systemitem>fe80:0000:0000:0000:0000:0000:0000:0001</systemitem>.</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
- <systemitem>2002::10.0.0.1</systemitem>
- corresponds to the (hexadecimal) canonical representation
- <systemitem>2002:0000:0000:0000:0000:0000:0a00:0001</systemitem>
- which in turn is equivalent to
- writing <systemitem>2002::a00:1</systemitem>.</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><systemitem>fe80::200:21ff:fe03:8e1%rl0</systemitem>
- 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 <link xlink:href="http://www.ietf.org/rfc/rfc3513.txt">RFC3513</link>.</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 (<link xlink:href="http://www.ietf.org/rfc/rfc3068.txt">RFC3068</link>)</para>
- </listitem>
-
- <listitem>
- <para>Use the <package>net/freenet6</package> 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 <package>dns/djbdns</package> (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 <systemitem>
- 2001:471:1f11:251:290:27ff:fee0:2093</systemitem>, to your
- <filename>fxp0</filename> interface, add:</para>
-
- <programlisting>ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"</programlisting>
-
- <para>To assign a default router of
- <systemitem>2001:471:1f11:251::1</systemitem>
- 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 <filename>gif0</filename>:</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
- <filename>fxp0</filename>:</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 <filename>fxp0</filename> with the interface you
- are going to be using.</para>
-
- <para>Next, replace <systemitem>2001:471:1f11:246::</systemitem>
- with the prefix of your allocation.</para>
-
- <para>If you are dedicated a <systemitem class="netmask">/64</systemitem> 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 xml:id="network-atm">
- <info><title>Asynchronous Transfer Mode (ATM)</title>
- <authorgroup>
- <author><personname><firstname>Harti</firstname><surname>Brandt</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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><systemitem>hostA</systemitem></entry>
- <entry><systemitem class="ipaddress">192.168.173.1</systemitem></entry>
- </row>
-
- <row>
- <entry><systemitem>hostB</systemitem></entry>
- <entry><systemitem class="ipaddress">192.168.173.2</systemitem></entry>
- </row>
-
- <row>
- <entry><systemitem>hostC</systemitem></entry>
- <entry><systemitem class="ipaddress">192.168.173.3</systemitem></entry>
- </row>
-
- <row>
- <entry><systemitem>hostD</systemitem></entry>
- <entry><systemitem class="ipaddress">192.168.173.4</systemitem></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><systemitem>hostA</systemitem> - <systemitem>hostB</systemitem></entry>
- <entry>0.100</entry>
- </row>
-
- <row>
- <entry><systemitem>hostA</systemitem> - <systemitem>hostC</systemitem></entry>
- <entry>0.101</entry>
- </row>
-
- <row>
- <entry><systemitem>hostA</systemitem> - <systemitem>hostD</systemitem></entry>
- <entry>0.102</entry>
- </row>
-
- <row>
- <entry><systemitem>hostB</systemitem> - <systemitem>hostC</systemitem></entry>
- <entry>0.103</entry>
- </row>
-
- <row>
- <entry><systemitem>hostB</systemitem> - <systemitem>hostD</systemitem></entry>
- <entry>0.104</entry>
- </row>
-
- <row>
- <entry><systemitem>hostC</systemitem> - <systemitem>hostD</systemitem></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
- <filename>hatm0</filename> on all hosts. Now the PVCs
- need to be configured on <systemitem>hostA</systemitem> (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 <systemitem>hostA</systemitem> 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 xml:id="carp">
- <info><title>Common Access Redundancy Protocol (CARP)</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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
- <systemitem>hosta.example.org</systemitem> and
- <systemitem>hostb.example.org</systemitem> respectively. First, the
- required lines for a <acronym>CARP</acronym> configuration have
- to be added to <filename>rc.conf</filename>. For
- <systemitem>hosta.example.org</systemitem>, 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 <systemitem>hostb.example.org</systemitem> 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 <filename>carp</filename> 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,
- <systemitem>provider.example.org</systemitem>, should be prepared so that
- it may handle failover from either host. This machine will require
- two <filename>carp</filename> 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 <filename>carp</filename> devices will
- allow <systemitem>provider.example.org</systemitem> 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,
- <systemitem>provider.example.org</systemitem> 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
- <systemitem>provider.example.org</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>ifconfig carp0 down &amp;&amp; ifconfig carp0 up</userinput></screen>
-
- <para>This should be done on the <filename>carp</filename>
- 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>
diff --git a/el_GR.ISO8859-7/books/handbook/audit/chapter.xml b/el_GR.ISO8859-7/books/handbook/audit/chapter.xml
deleted file mode 100644
index 0a81cffb15..0000000000
--- a/el_GR.ISO8859-7/books/handbook/audit/chapter.xml
+++ /dev/null
@@ -1,721 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Έλεγχος Συμβάντων Ασφαλείας
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/audit/chapter.xml
- %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 xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="audit">
- <info><title>Έλεγχος Συμβάντων Ασφαλείας</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφτηκε από τον </contrib></author>
- <author><personname><firstname>Robert</firstname><surname>Watson</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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>
- </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>Οι λειτουργίες ελέγχου στο &os; 6.2 είναι σε πειραματικό στάδιο
- και η εγκατάσταση τους σε μηχανήματα παραγωγής θα πρέπει να γίνεται
- μόνο αφού ληφθούν σοβαρά υπόψιν οι κίνδυνοι από την εγκατάσταση
- πειραματικού λογισμικού. Οι γνωστοί αυτή τη στιγμή τρέχοντες
- περιορισμοί περιλαμβάνουν την αδυναμία ελέγχου όλων των συμβάντων που
- σχετίζονται με την ασφάλεια. Επίσης κάποιοι μηχανισμοί εισόδου
- (logins), όπως οι γραφικοί (X11-βασισμένοι) display managers, καθώς
- και ορισμένες υπηρεσίες τρίτων κατασκευαστών δεν είναι σωστά
- ρυθμισμένες για τον έλεγχο εισόδου χρηστών. </para>
- </warning>
-
- <warning>
- <para>Ο έλεγχος συμβάντων ασφαλείας μπορεί να δημιουργήσει πολύ
- λεπτομερείς καταγραφές της δραστηριότητας του συστήματος: σε ένα
- σύστημα με υψηλό φόρτο, τα αρχεία καταγραφής μπορεί να γίνουν πολύ
- μεγάλα, αν έχουν ρυθμιστεί για λεπτομερή καταγραφή, και να ξεπεράσουν
- τα αρκετά gigabytes την εβδομάδα σε κάποιες περιπτώσεις. Οι
- διαχειριστές θα πρέπει να λαμβάνουν υπόψιν τους τις πιθανές απαιτήσεις
- σε χώρο δίσκου σε περίπτωση ρυθμίσεων λεπτομερούς καταγραφής. Για
- παράδειγμα, ίσως είναι θεμιτό να αφιερωθεί ένα σύστημα αρχείων στο
- <filename>/var/audit</filename> ώστε τα υπόλοιπα συστήματα αρχείων να
- μην επηρεαστούν αν ο χώρος αυτός εξαντληθεί. </para>
- </warning>
-
- </sect1>
-
- <sect1 xml: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 xml: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 xml:id="audit-config">
- <title>Audit Configuration</title>
-
- <para>All configuration files for security audit are found in
- <filename>/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 xml: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 xml: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 xml: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
- <systemitem class="username">trhodes</systemitem> stored in the
- <filename>AUDITFILE</filename> file.</para>
- </sect2>
-
- <sect2>
- <title>Delegating Audit Review Rights</title>
-
- <para>Members of the <systemitem class="groupname">audit</systemitem> group are given
- permission to read audit trails in <filename>/var/audit</filename>;
- by default, this group is empty, so only the <systemitem class="username">root</systemitem> user may read
- audit trails. Users may be added to the <systemitem class="groupname">audit</systemitem>
- 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
- <systemitem class="username">root</systemitem> user. To make them accessible to the members of the
- <systemitem class="groupname">audit</systemitem> 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.xml b/el_GR.ISO8859-7/books/handbook/basics/chapter.xml
deleted file mode 100644
index 8efdb1e4f5..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/chapter.xml
+++ /dev/null
@@ -1,2875 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Βασικές Έννοιες στο Unix
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/basics/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
- <info><title>Βασικές Έννοιες στο &unix;</title>
- <authorgroup>
- <author><personname><firstname>Chris</firstname><surname>Shumway</surname></personname><contrib>Αναθεωρημένο από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 xml:id="consoles">
- <title>Εικονικές Κονσόλες και Τερματικά </title>
- <indexterm><primary>εικονικές κονσόλες</primary></indexterm>
- <indexterm><primary>τερματικά</primary></indexterm>
-
- <para>Μπορείτε να χειριστείτε το &os; με διάφορους τρόπους. Ένας από
- αυτούς, είναι πληκτρολογώντας εντολές κειμένου σε ένα τερματικό. Με
- αυτό τον τρόπο έχετε στα χέρια σας ένα ευέλικτο και δυνατό λειτουργικό
- σύστημα &unix;. Αυτή η ενότητα περιγράφει τι είναι τα
- <quote>τερματικά</quote> και οι <quote>κονσόλες</quote> και πως μπορούν
- να χρησιμοποιηθούν στο &os;.</para>
-
- <sect2 xml: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; έχουν κάποιο
- όνομα) είναι <systemitem>pc3.example.org</systemitem>, και έχετε ανοικτό
- μπροστά σας το τερματικό <filename>ttyv0</filename> &mdash;
- κονσόλα του συστήματος.</para>
-
- <para>Ολοκληρώνοντας, η τελευταία γραμμή είναι πάντα:</para>
-
- <programlisting>login:</programlisting>
-
- <para>Σε αυτό το μέρος θα πρέπει να πληκτρολογήσετε το <quote>όνομα
- χρήστη</quote> (username) για να συνδεθείτε στο &os;. Στην επόμενη
- ενότητα θα περιγράψουμε ακριβώς αυτήν την διαδικασία.</para>
- </sect2>
-
- <sect2 xml: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>Για παράδειγμα, ας υποθέσουμε πως το όνομα χρήστη σας είναι
- <systemitem class="username">john</systemitem>. Πληκτρολογήστε <literal>john</literal>
- στην προτροπή και πατήστε <keycap>Enter</keycap>. Θα ακολουθήσει μια
- νέα προτροπή για να δώσετε τον
- <quote>κωδικό πρόσβασης (password)</quote>:</para>
-
- <screen>login: <userinput>john</userinput>
-Password:</screen>
-
- <para>Πληκτρολογήστε τώρα τον κωδικό πρόσβασης του
- <systemitem class="username">john</systemitem>, και πατήστε <keycap>Enter</keycap>. Ο
- κωδικός πρόσβασης <emphasis>δεν είναι ορατός!</emphasis> Δεν
- χρειάζεται να ανησυχείτε για αυτό. Είναι επαρκές να πούμε πως αυτό
- συμβαίνει για λόγους ασφαλείας.</para>
-
- <para>Αν έχετε πληκτρολογήσει σωστά τον κωδικό πρόσβασης, τότε έχετε
- συνδεθεί στο &os; και είστε έτοιμοι να δοκιμάσετε όλες τις διαθέσιμες
- εντολές &unix;.</para>
-
- <para>Πρέπει να δείτε το <acronym>MOTD</acronym> ή αλλιώς το ημερήσιο
- μήνυμα και στη συνέχεια την προτροπή εντολής (ένα
- χαρακτήρα <literal>#</literal>, <literal>$</literal>, ή
- <literal>%</literal>). Αυτό σημαίνει πως έχετε συνδεθεί επιτυχώς στο
- &os;.</para>
- </sect2>
-
- <sect2 xml: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 xml: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 xml: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; σε κατάσταση ενός
- χρήστη, θα σας ζητηθεί ο κωδικός πρόσβασης του υπερχρήστη
- <systemitem class="username">root</systemitem>.</para>
-
- <para><emphasis>Προσέχετε όταν κάνετε την μετατροπή σε
- <literal>insecure</literal></emphasis>. Εάν τύχει να ξεχάσετε τον
- κωδικό πρόσβασης του <systemitem class="username">root</systemitem>, η πρόσβαση σε
- κατάσταση λειτουργίας ενός χρήστη μπορεί να γίνει δύσβατη. Υπάρχει
- ακόμη τρόπος να κάνετε εκκίνηση, αλλά ίσως να είναι δύσκολο για
- κάποιον που δεν γνωρίζει πολλά για τις διεργασίες και τα
- προγράμματα εκκίνησης του &os;.</para>
- </note>
- </sect2>
-
- <sect2 xml: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; σε
- μια κονσόλα που έχετε συνδεθεί ως <systemitem class="username">root</systemitem>:</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 xml: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>
- <info><title>Συμβολικές Άδειες</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm><primary>&gt;άδειες</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 FILE</userinput></screen>
-
-<!--
- <para>Οι περισσότεροι χρήστες δεν θα το προσέξουν, αλλά θα πρέπει να
- σημειώσουμε ότι χρησιμοποιώντας την μέθοδο των οκτάδων το μόνο που
- κάνουμε είναι να τίθονται άδειες σε αρχεία. Δεν προσθέτουμε, ούτε
- σβήνουμε.</para>
--->
- </sect2>
-
- <sect2>
- <info><title>&os; File Flags</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Πέρα από τις άδειες αρχείων που συζητήθηκαν πριν από λίγο, το &os;
- υποστηρίζει την χρήση των <quote>file flags.</quote> Αυτά τα flags
- προσθέτουν ένα επιπρόσθετο επίπεδο ασφαλείας και ελέγχου σε αρχεία,
- αλλά όχι σε καταλόγους.</para>
-
- <para>Αυτά τα flags προσθέτουν ένα πρόσθετο επίπεδο ελέγχου σε αρχεία,
- διασφαλίζοντας μας πως σε κάποιες περιπτώσεις ακόμη κι ο
- <systemitem class="username">root</systemitem> να μην μπορεί να διαγράψει ή να μετατρέψει
- αρχεία.</para>
-
- <para>Η μετατροπή των file flags γίνεται με την &man.chflags.1;,
- χρησιμοποιώντας μια απλή διασύνδεση. Για παράδειγμα, για να
- ενεργοποιήσουμε το flag του συστήματος μη διαγραφής αρχείου στο
- αρχείο <filename>file1</filename>, δίνουμε την ακόλουθη εντολή:</para>
-
- <screen>&prompt.root; <userinput>chflags sunlink file1</userinput></screen>
-
- <para>Για να απενεργοποιήσουμε το flag του συστήματος μη διαγραφής
- αρχείου, απλά δίνουμε την προηγούμενη εντολή με <quote>no</quote>
- μπροστά από το <option>sunlink</option>. Παρατηρήστε:</para>
-
- <screen>&prompt.root; <userinput>chflags nosunlink file1</userinput></screen>
-
- <para>Για να δείτε τα flags ενός αρχείου, χρησιμοποιήστε την εντολή
- &man.ls.1; με το πρόθεμα <option>-lo</option>:</para>
-
- <screen>&prompt.root; <userinput>ls -lo file1</userinput></screen>
-
- <para>Στην έξοδο θα πρέπει να δείτε κάτι παρόμοιο με το ακόλουθο:</para>
-
- <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
-
- <para>Μερικά flags μπορούν να προστεθούν ή να αφαιρεθούν μόνο από τον
- χρήστη <systemitem class="username">root</systemitem>. Στις υπόλοιπες περιπτώσεις, ο
- ιδιοκτήτης του αρχείου μπορεί να θέσει αυτά τα flags. Προτείνουμε
- στους διαχειριστές να διαβάσουν τις σελίδες βοηθείας
- &man.chflags.1; και &man.chflags.2; για περισσότερες
- πληροφορίες.</para>
- </sect2>
-
- <sect2>
- <info><title>Οι Άδειες setuid, setgid και sticky</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 αυτό του χρήστη <systemitem class="username">root</systemitem>.
- Με αυτό τον τρόπο, επιτρέπεται στους απλούς χρήστες να αλλάζουν τους
- κωδικούς τους χωρίς να παίρνουν το μήνυμα λάθους
- <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>suidexample.sh</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> του χρήστη <systemitem class="username">root</systemitem>.</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>/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 xml: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>/</filename></entry>
- <entry> Ριζικός (root) κατάλογος του συστήματος αρχείων.</entry>
- </row>
-
- <row>
- <entry><filename>/bin/</filename></entry>
- <entry>Χρήσιμα εργαλεία για περιβάλλον ενός ή πολλαπλών
- χρηστών.</entry>
- </row>
-
- <row>
- <entry><filename>/boot/</filename></entry>
- <entry>Προγράμματα και αρχεία ρυθμίσεων που χρησιμοποιούνται
- κατά την εκκίνηση του λειτουργικού συστήματος.</entry>
- </row>
-
- <row>
- <entry><filename>/boot/defaults/</filename></entry>
- <entry>Προκαθορισμένα αρχεία ρυθμίσεων εκκίνησης, δείτε
- &man.loader.conf.5;.</entry>
- </row>
-
- <row>
- <entry><filename>/dev/</filename></entry>
- <entry>Αρχεία συσκευών, δείτε &man.intro.4;.</entry>
- </row>
-
- <row>
- <entry><filename>/etc/</filename></entry>
- <entry>Αρχεία ρυθμίσεων συστήματος και σενάρια εκκίνησης.
- </entry>
- </row>
-
- <row>
- <entry><filename>/etc/defaults/</filename></entry>
- <entry>Προκαθορισμένα αρχεία ρυθμίσεων συστήματος, δείτε την
- &man.rc.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/etc/mail/</filename></entry>
- <entry>Αρχεία ρυθμίσεων για πράκτορες μεταφοράς ηλεκτρ.
- ταχυδρομείου (ΜΤΑ) όπως το &man.sendmail.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/etc/namedb/</filename></entry>
- <entry>Αρχεία ρυθμίσεων <command>named</command>, δείτε
- &man.named.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/etc/periodic/</filename></entry>
- <entry>Σενάρια λειτουργιών που τρέχουν σε ημερήσια, εβδομαδιαία,
- και μηνιαία βάση, &man.cron.8;; δείτε
- &man.periodic.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/etc/ppp/</filename></entry>
- <entry>Αρχεία ρυθμίσεων <command>ppp</command>, δείτε τις
- &man.ppp.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/mnt/</filename></entry>
- <entry>Κενός κατάλογος που συνήθως χρησιμοποιείται από τους
- διαχειριστές συστημάτων ως προσωρινό σημείο
- προσάρτησης.</entry>
- </row>
-
- <row>
- <entry><filename>/proc/</filename></entry>
- <entry>Σύστημα αρχείων διεργασιών, δείτε τις &man.procfs.5;,
- &man.mount.procfs.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/rescue/</filename></entry>
- <entry>Προγράμματα με στατική σύνδεση (static link) για ασφαλή
- επαναφορά συστήματος, δείτε την &man.rescue.8;.</entry>
- </row>
-
- <row>
- <entry><filename>/root/</filename></entry>
- <entry>Προσωπικός κατάλογος του χρήστη
- <systemitem class="username">root</systemitem>.</entry>
- </row>
-
- <row>
- <entry><filename>/sbin/</filename></entry>
- <entry>Προγράμματα συστήματος και χρήσιμα εργαλεία διαχείρισης
- για περιβάλλον ενός ή πολλαπλών χρηστών.</entry>
- </row>
-
- <row>
- <entry><filename>/tmp/</filename></entry>
- <entry>Προσωρινά αρχεία. Τα περιεχόμενα του
- <filename>/tmp</filename> συνήθως δεν
- διατηρούνται μετά από επανεκκίνηση του συστήματος. Στο
- <filename>/tmp</filename> συνήθως
- προσαρτάται ένα σύστημα αρχείων μνήμης. Αυτό μπορεί να
- επιτευχθεί αυτομάτως χρησιμοποιώντας τις σχετικές μεταβλητές
- tmpmfs του &man.rc.conf.5; (ή με μια καταχώρηση στον
- <filename>/etc/fstab</filename>, δείτε
- την &man.mdmfs.8;).</entry>
- </row>
-
- <row>
- <entry><filename>/usr/</filename></entry>
- <entry>Περιέχονται σχεδόν όλα τα βοηθητικά προγράμματα και οι
- εφαρμογές χρηστών.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/bin/</filename></entry>
- <entry>Κοινόχρηστα βοηθητικά προγράμματα, εργαλεία
- προγραμματισμού, και εφαρμογές.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/include/</filename></entry>
- <entry>Στάνταρ αρχεία συμπερίληψης C (include files).</entry>
- </row>
-
- <row>
- <entry><filename>/usr/lib/</filename></entry>
- <entry>Αρχεία βιβλιοθηκών.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/libdata/</filename></entry>
- <entry>Διάφορα αρχεία δεδομένων βοηθητικών προγραμμάτων.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/libexec/</filename></entry>
- <entry>Δαίμονες συστήματος &amp; βοηθητικά προγράμματα
- συστήματος (εκτελούνται από άλλα προγράμματα).</entry>
- </row>
-
- <row>
- <entry><filename>/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/port
- </filename>.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/obj/</filename></entry>
- <entry>Δέντρο προορισμού που εξαρτάται από την αρχιτεκτονική
- του μηχανήματος και παράγεται μεταγλωττίζοντας το δέντρο
- <filename>/usr/src</filename>.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/ports/</filename></entry>
- <entry>Η Συλλογή Ports του &os; (προαιρετικό).</entry>
- </row>
-
- <row>
- <entry><filename>/usr/sbin/</filename></entry>
- <entry>Δαίμονες συστήματος &amp; βοηθητικά προγράμματα
- συστήματος (εκτελούνται από χρήστες).</entry>
- </row>
-
- <row>
- <entry><filename>/usr/share/</filename></entry>
- <entry>Αρχεία ανεξάρτητα από την Αρχιτεκτονική του
- μηχανήματος.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/src/</filename></entry>
- <entry>Αρχεία BSD και/ή τοπικά αρχεία πηγαίου κώδικα.</entry>
- </row>
-
- <row>
- <entry><filename>/usr/X11R6/</filename></entry>
- <entry>Εκτελέσιμα, βιβλιοθήκες, κτλ. για την διανομή X11R6
- (προαιρετικό).</entry>
- </row>
-
- <row>
- <entry><filename>/var/</filename></entry>
- <entry>Αρχεία αναφοράς (log) διαφόρων χρήσεων, temporary,
- transient, και spool. Μερικές φορές προσαρτάται στον
- <filename>/var</filename> ένα σύστημα
- αρχείων μνήμης. Αυτό μπορεί να επιτευχθεί αυτόματα
- χρησιμοποιώντας τις σχετικές μεταβλητές varmfs του
- &man.rc.conf.5; (ή με μία καταχώρηση στο
- <filename>/etc/fstab</filename>, δείτε τις
- &man.mdmfs.8;).</entry>
- </row>
-
- <row>
- <entry><filename>/var/log/</filename></entry>
- <entry>Διάφορα αρχεία συμβάντων του συστήματος.</entry>
- </row>
-
- <row>
- <entry><filename>/var/mail/</filename></entry>
- <entry>Αρχεία γραμματοκιβωτίου (mailbox) χρηστών.</entry>
- </row>
-
- <row>
- <entry><filename>/var/spool/</filename></entry>
- <entry>Διάφοροι κατάλογοι παροχέτευσης (spool) εκτυπωτών και
- ηλεκτρονικής αλληλογραφίας του συστήματος.</entry>
- </row>
-
- <row>
- <entry><filename>/var/tmp/</filename></entry>
- <entry>Προσωρινά (temporary) αρχεία. Τα αρχεία αυτά συνήθως
- διατηρούνται κατά την διάρκεια επανεκκίνησης του συστήματος,
- εκτός αν ο <filename>/var</filename> είναι
- ένα σύστημα αρχείων μνήμης.</entry>
- </row>
-
- <row>
- <entry><filename>/var/yp/</filename></entry>
- <entry>Απεικονίσεις (maps) NIS.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable></para>
- </sect1>
-
- <sect1 xml: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"/>
- </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"/>
- </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"/>
- </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"/>
- </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"/>
- </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" xml: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><filename>ad</filename></entry>
- <entry>Δίσκος ATAPI (IDE)</entry>
- </row>
-
- <row>
- <entry><filename>da</filename></entry>
- <entry>Δίσκος SCSI άμεσης πρόσβασης</entry>
- </row>
-
- <row>
- <entry><filename>acd</filename></entry>
- <entry>ATAPI (IDE) CDROM</entry>
- </row>
-
- <row>
- <entry><filename>cd</filename></entry>
- <entry>SCSI CDROM</entry>
- </row>
-
- <row>
- <entry><filename>fd</filename></entry>
- <entry>Μονάδα Δισκέτας (Floppy)</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
-
- <example xml: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 xml:id="basics-concept-disk-model">
- <title>Εννοιολογικό Μοντέλο ενός Δίσκου</title>
-
- <para>Το διάγραμμα παρουσιάζει μια εικόνα του πρώτου δίσκου IDE που
- είναι προσαρτημένος στο σύστημα. Ας υποθέσουμε πως ο δίσκος έχει
- μέγεθος 4&nbsp;GB, και περιέχει δύο φέτες των 2&nbsp;GB
- (κατατμήσεις &ms-dos;). Η πρώτη φέτα περιέχει ένα δίσκο &ms-dos;,
- <filename>C:</filename>, και η δεύτερη φέτα μία εγκατάσταση
- &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"/>
- </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 xml: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 xml: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 xml: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 device mountpoint</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 xml: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 xml: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 xml: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;, δεν θα σας επιτραπεί. Η μοναδική εξαίρεση σε αυτό, είναι
- ο χρήστης <systemitem class="username">root</systemitem>, που μπορεί να στέλνει σήματα στις
- διεργασίες οποιουδήποτε άλλου χρήστη του συστήματος.</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; εκτελείται από τον <systemitem class="username">root</systemitem>,
- επομένως θα πρέπει να προσθέσετε την επιλογή <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; τρέχει από τον <systemitem class="username">root</systemitem>
- θα πρέπει πρώτα να χρησιμοποιήσετε &man.su.1; για να γίνετε
- πρώτα <systemitem class="username">root</systemitem>.</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 ...</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 xml: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[Tab].[Tab]</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 xml: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 xml: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 filename</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;
- (<package>editors/emacs</package> και
- <package>editors/vim</package>). Αυτοί οι
- κειμενογράφοι προσφέρουν πολλές περισσότερες λειτουργίες και
- δυνατότητες, με κόστος αυξημένη πολυπλοκότητα και δυσκολία εκμάθησης.
- Ωστόσο αν σχεδιάζετε να επεξεργαστείτε αρκετά κείμενα, η εκμάθηση ενός
- ισχυρού κειμενογράφου όπως το
- <application>vim</application> ή το <application>Emacs</application> θα
- σας γλυτώσει πολύ περισσότερο χρόνο επεξεργασίας στην πορεία.</para>
-
- <para>Πολλές εφαρμογές που χρειάζεται να αλλάξουν κάποιο αρχείο ή
- απαιτούν από το χρήστη να πληκτρολογήσει κάποιο κείμενο, θα ανοίξουν
- αυτόματα κάποιο κειμενογράφο. Για να αλλάξετε τον προεπιλεγμένο
- κειμενογράφο, θα πρέπει να θέσετε κατάλληλη τιμή στην μεταβλητή
- περιβάλλοντος <envar>EDITOR</envar>. Δείτε την ενότητα <link linkend="shells">Κελύφη</link> για περισσότερες λεπτομέρειες.</para>
- </sect1>
-
- <sect1 xml:id="basics-devices">
- <title>Συσκευές και Αρχεία συσκευών</title>
-
- <para>Συσκευή είναι ένας όρος που αναφέρεται σε σχέση με
- λειτουργίες hardware ενός συστήματος, περιλαμβάνοντας δίσκους,
- εκτυπωτές, κάρτες γραφικών και πληκτρολόγια. Κατά την εκκίνηση του &os;
- οι περισσότερες πληροφορίες που αναγράφονται στην οθόνη είναι συσκευές
- που αναγνωρίζονται από το σύστημα. Μπορείτε να ξαναδείτε τα μηνύματα
- εκκίνησης, διαβάζοντας το <filename>/var/run/dmesg.boot</filename>.</para>
-
- <para>Για παράδειγμα, <filename>acd0</filename> είναι ο πρώτος
- οδηγός IDE CDROM, ενώ το <filename>kbd0</filename> αντιπροσωπεύει
- το πληκτρολόγιο.</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 xml: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 xml:id="basics-more-information">
- <title>Για Περισσότερες Πληροφορίες</title>
-
- <sect2 xml: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 command</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 xml: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>
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot
deleted file mode 100644
index 2d2babfec3..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot
+++ /dev/null
@@ -1,12 +0,0 @@
-// $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
deleted file mode 100644
index d3326ee012..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/example-dir2.dot
+++ /dev/null
@@ -1,13 +0,0 @@
-// $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
deleted file mode 100644
index 3e583dbefd..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/example-dir3.dot
+++ /dev/null
@@ -1,14 +0,0 @@
-// $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
deleted file mode 100644
index ed9e13cf6d..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/example-dir4.dot
+++ /dev/null
@@ -1,15 +0,0 @@
-// $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
deleted file mode 100644
index ecb09b22eb..0000000000
--- a/el_GR.ISO8859-7/books/handbook/basics/example-dir5.dot
+++ /dev/null
@@ -1,14 +0,0 @@
-// $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.xml b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.xml
deleted file mode 100644
index fc517ee554..0000000000
--- a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.xml
+++ /dev/null
@@ -1,541 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Βιβλιογραφία
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/bibliography/chapter.xml
- %SRCID% 39056
-
--->
-<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="bibliography">
- <title>Βιβλιογραφία</title>
-
- <para>Αν και τα manual pages παρέχουν μία επίσημη αναφορά για τα διάφορα
- τμήματα του λειτουργικού συστήματος &os;, δεν εξηγούν πως όλα αυτά
- ενώνονται μεταξύ τους ώστε το λειτουργικό σύστημα να λειτουργεί ομαλά.
- Για αυτές τις πληροφορίες, θα πρέπει να συμβουλευτείτε ένα
- καλό βιβλίο διαχείρισης συστημάτων &unix; και ένα καλό εγχειρίδιο
- χρήστη.</para>
-
- <sect1 xml:id="bibliography-freebsd">
- <title>Βιβλία &amp; Περιοδικά σχετικά με το FreeBSD</title>
-
- <para><emphasis>Διεθνή βιβλία &amp;
- περιοδικά:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.htm">Using FreeBSD</link> (σε Παραδοσιακά Κινέζικα).</para>
- </listitem>
-
- <listitem>
-
- <para>FreeBSD Unleashed (Μετάφραση σε Απλοποιημένα Κινέζικα),
- εκδόθηκε από την
- <link xlink:href="http://www.hzbook.com/">China Machine
- Press</link>. ISBN 7-111-10201-0.
- </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 (Μετάφραση σε Απλοποιημένα
- Κινέζικα), εκδόθηκε από την
- <link xlink:href="http://www.ptpress.com.cn/">Posts &amp; Telecom
- Press</link>. ISBN 7-115-10541-3.
- </para>
- </listitem>
-
- <listitem>
- <para>FreeBSD &amp; Windows (σε Απλοποιημένα Κινέζικα),
- εκδόθηκε από την
- <link xlink:href="http://www.tdpress.com/">China Railway Publishing
- House</link>. 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 (στα Γιαπωνέζικα), εκδόθηκε από την CUTT. ISBN 4-906391-22-2
- C3055 P2400E.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.shoeisha.com/book/Detail.asp?bid=650">Complete Introduction to FreeBSD</link>
- (στα Γιαπωνέζικα), εκδόθηκε από την <link xlink:href="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</link>.
- ISBN 4-88135-473-6 P3600E.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</link>
- (στα Γιαπωνέζικα), εκδόθηκε από την <link xlink:href="http://www.ascii.co.jp/">ASCII</link>.
- ISBN 4-7561-1733-3 P3000E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD Handbook (Γιαπωνέζικη μετάφραση), εκδόθηκε από την
- <link xlink:href="http://www.ascii.co.jp/">ASCII</link>.
- ISBN 4-7561-1580-2 P3800E.</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD mit Methode (στα Γερμανικά), εκδόθηκε από την <link xlink:href="http://www.cul.de">Computer und Literatur Verlag</link>/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.mitp.de/vmi/mitp/detail/pWert/1343/">
- FreeBSD de Luxe</link> (στα Γερμανικά), εκδόθηκε από την
- <link xlink:href="http://www.mitp.de">Verlag Modere Industrie</link>,
- 2003. ISBN 3-8266-1343-0.
- </para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD Install and Utilization Manual</link>
- (στα Γιαπωνέζικα), εκδόθηκε από την <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</link>.</para>
- </listitem>
-
- <listitem>
- <para>Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
- <emphasis><link xlink:href="http://maxwell.itb.ac.id/">Building Internet Server with
- FreeBSD</link></emphasis> (στην Ινδονησιακή γλώσσα), εκδόθηκε
- από την <link xlink:href="http://www.elexmedia.co.id/">Elex Media
- Komputindo</link>.</para>
- </listitem>
-
- <listitem>
- <para>Absolute BSD: The Ultimate Guide to FreeBSD (Μετάφραση σε
- Παραδοσιακά Κινέζικα), εκδόθηκε από την <link xlink:href="http://www.grandtech.com.tw/">GrandTech Press</link>, 2003.
- ISBN 986-7944-92-5.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.twbsd.org/cht/book/">The FreeBSD 6.0 Book</link>
- (σε Παραδοσιακά Κινέζικα), εκδόθηκε από την Drmaster, 2006.
- ISBN 9-575-27878-X.</para>
- </listitem>
-
- </itemizedlist>
-
- <para><emphasis>Βιβλία &amp; περιοδικά στην Αγγλική γλώσσα:</emphasis></para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://www.absoluteFreeBSD.com/">Absolute
- FreeBSD, 2nd Edition: The Complete Guide to FreeBSD</link>,
- εκδόθηκε από την <link xlink:href="http://www.nostarch.com/">No Starch Press</link>, 2007.
- ISBN: 978-1-59327-151-0</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.freebsdmall.com/cgi-bin/fm/bsdcomp">
- The Complete FreeBSD</link>, εκδόθηκε από την
- <link xlink:href="http://www.oreilly.com/">O'Reilly</link>, 2003.
- ISBN: 0596005164</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.freebsd-corp-net-guide.com/">The
- FreeBSD Corporate Networker's Guide</link>, εκδόθηκε από την
- <link xlink:href="http://www.awl.com/aw/">Addison-Wesley</link>, 2000.
- ISBN: 0201704811</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://andrsn.stanford.edu/FreeBSD/introbook/">
- FreeBSD: An Open-Source Operating System for Your Personal
- Computer</link>, εκδόθηκε από την The Bit Tree Press, 2001.
- ISBN: 0971204500</para>
- </listitem>
-
- <listitem>
- <para>Teach Yourself FreeBSD in 24 Hours, εκδόθηκε από την
- <link xlink:href="http://www.samspublishing.com/">Sams</link>, 2002.
- ISBN: 0672324245</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD 6 Unleashed, εκδόθηκε από την
- <link xlink:href="http://www.samspublishing.com/">Sams</link>, 2006.
- ISBN: 0672328755</para>
- </listitem>
-
- <listitem>
- <para>FreeBSD: The Complete Reference, εκδόθηκε από την
- <link xlink:href="http://books.mcgraw-hill.com">McGrawHill</link>, 2003.
- ISBN: 0072224096 </para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.bsdmag.org">BSD Magazine</link>,
- εκδίδεται από την Software Press Sp. z o.o. SK.
- ISSN 1898-9144</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="bibliography-userguides">
- <title>Οδηγοί χρήστη</title>
-
- <itemizedlist>
- <listitem>
- <para>Το Ohio State University έγραψε τα <link xlink:href="http://www.cs.duke.edu/csl/docs/unix_course/">Εισαγωγικά
- μαθήματα UNIX</link> που διατίθενται σε HTML και
- PostScript.</para>
-
- <para>Μια Ιταλική <link xlink:href="&url.doc.base;/it_IT.ISO8859-15/books/unix-introduction/index.html">μετάφραση</link>
- αυτού του κειμένου διατίθεται ως μέρος του FreeBSD Italian
- Documentation Project.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</link>. <link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
- Reference Manual</link> (Japanese translation). <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</link>, 1998. ISBN4-8399-0088-4 P3800E.</para>
- </listitem>
-
- <listitem>
- <para>Το <link xlink:href="http://www.ed.ac.uk/">Edinburgh
- University</link> έγραψε ένα <link xlink:href="http://unixhelp.ed.ac.uk/">Online οδηγό</link> για
- νέους στο περιβάλλον του UNIX.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="bibliography-adminguides">
- <title>Οδηγοί διαχειριστή</title>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://www.jp.FreeBSD.org/">Jpman Project, Japan
- FreeBSD Users Group</link>. <link xlink:href="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
- Administrator's Manual</link> (Γιαπωνέζικη μετάφραση). <link xlink:href="http://www.pc.mycom.co.jp/">Mainichi Communications
- Inc.</link>, 1998. ISBN4-8399-0109-0 P3300E.</para>
- </listitem>
-
- <listitem>
- <para>Dreyfus, Emmanuel. <link xlink:href="http://www.eyrolles.com/Informatique/Livre/9782212114638/">Cahiers
- de l'Admin: BSD</link> 2nd Ed. (στα Γαλλικά), Eyrolles, 2004.
- ISBN 2-212-11463-X</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="bibliography-programmers">
- <title>Οδηγοί προγραμματιστών</title>
-
- <itemizedlist>
- <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. <link xlink:href="http://www.spinellis.gr/codereading/"><emphasis>Code
- Reading: The Open Source Perspective</emphasis></link>.
- Addison-Wesley, 2003. ISBN 0-201-79940-5</para>
- </listitem>
-
- <listitem>
- <para>Spinellis, Diomidis. <link xlink:href="http://www.spinellis.gr/codequality/"><emphasis>Code
- Quality: The Open Source Perspective</emphasis></link>.
- 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>
- </itemizedlist>
- </sect1>
-
- <sect1 xml: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 από αυτό το βιβλίο διατίθεται <link xlink:href="&url.books.design-44bsd;/book.html">online</link> ως μέρος του
- FreeBSD Documentation Project.)</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 xml: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. <emphasis>PGP Pretty Good
- Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
- 1-56592-098-8</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml: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 και πρότυπα στο <link xlink:href="http://developer.intel.com/">developer web site</link>,
- συνήθως ως αρχεία 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 xml: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. Γνωστό και ως το <link xlink:href="http://www.catb.org/~esr/jargon/html/index.html">Jargon
- File</link></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. Εκτός κυκλοφορίας, αλλά διατίθεται
- <link xlink:href="http://www.simson.net/ref/ugh.pdf">online</link>.</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>.
- <uri xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree">http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree</uri>
- η το <link xlink:href="file://localhost/usr/share/misc/bsd-family-tree"><filename>/usr/share/misc/bsd-family-tree</filename></link>
- σε ένα FreeBSD μηχάνημα.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Networked Computer Science Technical Reports
- Library</emphasis>. <uri xlink:href="http://www.ncstrl.org/">http://www.ncstrl.org/</uri></para>
- </listitem>
-
- <listitem>
- <para><emphasis>Παλαιές BSD εκδόσεις από το Computer Systems Research
- group (CSRG)</emphasis>.
- <uri xlink:href="http://www.mckusick.com/csrg/">http://www.mckusick.com/csrg/</uri>:
- Το 4CD set έχει όλες τις BSD εκδόσεις από την 1BSD μέχρι την
- 4.4BSD και την 4.4BSD-Lite2 (αλλά όχι την 2.11BSD, δυστυχώς).
- Το τελευταίο δισκάκι περιέχει επίσης τον τελικό πηγαίο κώδικα συν
- τα αρχεία SCCS.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml: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>
diff --git a/el_GR.ISO8859-7/books/handbook/book.xml b/el_GR.ISO8859-7/books/handbook/book.xml
deleted file mode 100644
index 7830c51d3d..0000000000
--- a/el_GR.ISO8859-7/books/handbook/book.xml
+++ /dev/null
@@ -1,328 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
-<!ENTITY % chapters SYSTEM "chapters.ent">
-%chapters;
-<!ENTITY % txtfiles SYSTEM "txtfiles.ent">
-%txtfiles;
-]>
-
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Οργάνωση Κεφαλαίων
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/book.xml
- %SRCID% 43566
-
--->
-
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="el">
- <info><title>Εγχειρίδιο του FreeBSD</title>
-
- <author><orgname>Ομάδα Τεκμηρίωσης του FreeBSD</orgname></author>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <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>
- <year>2013</year>
- <year>2014</year>
- <holder>Ομάδα Τεκμηρίωσης του FreeBSD</holder>
- </copyright>
-
- &legalnotice;
-
- <legalnotice xml: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.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.microsoft;
- &tm-attrib.opengroup;
- &tm-attrib.oracle;
- &tm-attrib.realnetworks;
- &tm-attrib.redhat;
- &tm-attrib.sun;
- &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;. Η τελευταία έκδοση αυτού του κειμένου είναι πάντα
- διαθέσιμη από την
- <link xlink:href="http://www.FreeBSD.org/">ιστοσελίδα του &os;</link>
- (παλιότερες εκδόσεις μπορείτε να βρείτε στη διεύθυνση
- <uri xlink:href="http://docs.FreeBSD.org/doc/">http://docs.FreeBSD.org/doc/</uri>). Μπορείτε
- επίσης να μεταφορτώσετε στον υπολογιστή σας το ίδιο βιβλίο σε
- άλλες μορφές αρχείου και με διάφορες μορφές συμπίεσης από
- τον <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">εξυπηρετητή
- FTP του &os;</link> ή ένα από τα
- πολλά <link linkend="mirrors-ftp">mirror sites</link>. Αν
- προτιμάτε ένα τυπωμένο αντίτυπο, μπορείτε να αγοράσετε ένα
- αντίγραφο του Εγχειριδίου, από το
- <link xlink:href="http://www.freebsdmall.com/">FreeBSD Mall</link>.
- Μπορείτε επίσης
- να <link xlink:href="&url.base;/search/index.html">ψάξετε σε όλο το
- βιβλίο</link>.</para>
- </abstract>
- </info>
-
- &chap.preface;
-
- <part xml: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.bsdinstall;
- &chap.install;
- &chap.basics;
- &chap.ports;
- &chap.x11;
- </part>
-
- <part xml: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.multimedia;
- &chap.kernelconfig;
- &chap.printing;
- &chap.linuxemu;
- </part>
-
- <part xml:id="system-administration">
- <title>Διαχείριση Συστήματος</title>
-
- <partintro>
- <para>Τα κεφάλαια του &os; Handbook που ακολουθούν αναφέρονται σε θέματα
- που έχουν σχέση με τη <emphasis>διαχείριση</emphasis> του συστήματος.
- Κάθε κεφάλαιο ξεκινά περιγράφοντας τι θα μάθετε διαβάζοντας
- το συγκεκριμένο κεφάλαιο, καθώς και τι προαπαιτούμενα έχει το κεφάλαιο
- αυτό: τι πρέπει να έχετε ήδη διαβάσει και κατανοήσει πριν ασχοληθείτε
- με αυτό το κεφάλαιο.</para>
-
- <para>Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς
- παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους
- οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για
- το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά,
- ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε
- με το &os;.</para>
- </partintro>
-
- &chap.config;
- &chap.boot;
- <!-- Note: users chapter will stay in the Greek build until merged
- basics -->
- &chap.users;
- &chap.security;
- &chap.jails;
- &chap.mac;
- &chap.audit;
- &chap.disks;
- &chap.geom;
- &chap.filesystems;
- &chap.virtualization;
- &chap.l10n;
- &chap.cutting-edge;
- &chap.dtrace;
- </part>
-
- <part xml: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.ppp-and-slip;
- &chap.mail;
- &chap.network-servers;
- &chap.firewalls;
- &chap.advanced-networking;
- </part>
-
- <part xml:id="appendices">
- <title>Παραρτήματα</title>
-
- &chap.mirrors;
- &chap.bibliography;
- &chap.eresources;
- &chap.pgpkeys;
- </part>
-
- &chap.freebsd-glossary;
- &chap.index;
- &chap.colophon;
-</book>
diff --git a/el_GR.ISO8859-7/books/handbook/boot/chapter.xml b/el_GR.ISO8859-7/books/handbook/boot/chapter.xml
deleted file mode 100644
index 9195019038..0000000000
--- a/el_GR.ISO8859-7/books/handbook/boot/chapter.xml
+++ /dev/null
@@ -1,1066 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Η Διαδικασία Εκκίνησης του FreeBSD
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/boot/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="boot">
- <title>Η Διαδικασία Εκκίνησης του &os;</title>
-
- <sect1 xml: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 xml: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 xml:id="boot-blocks">
- <title>Ο Διαχειριστής Εκκίνησης και τα Στάδια Εκκίνησης</title>
-
- <indexterm><primary>Boot Manager</primary></indexterm>
-
- <sect2 xml: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 xml: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 device</userinput></screen>
-
- <para>όπου <replaceable>device</replaceable> είναι η συσκευή από την
- οποία γίνεται εκκίνηση, όπως π.χ. το <filename>ad0</filename> για
- τον πρώτο δίσκο IDE, το <filename>ad2</filename> για τον πρώτο
- IDE δίσκο στο δευτερεύοντα ελεγκτή, το <filename>da0</filename>
- για τον πρώτο 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 xml: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 xml: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 diskslice</userinput></screen>
-
- <para>όπου το <replaceable>diskslice</replaceable> είναι ο δίσκος και
- το slice από το οποίο γίνεται η εκκίνηση, όπως π.χ.
- <filename>ad0s1</filename> για το πρώτο slice στον πρώτο IDE
- δίσκο.</para>
-
- <warning>
- <title>Επικίνδυνα Αφοσιωμένη Κατάσταση (Dangerously Dedicated
- Mode)</title>
-
- <para>Αν χρησιμοποιήσετε μόνο το όνομα του δίσκου, όπως π.χ.
- <filename>ad0</filename>, στην εντολή &man.bsdlabel.8; θα
- δημιουργήσετε ένα επικίνδυνα αφοσιωμένο δίσκο, χωρίς slices. Είναι
- σχεδόν σίγουρο ότι δεν θέλετε να το κάνετε αυτό, γι' αυτό
- σιγουρευτείτε ότι ελέγξατε την εντολή &man.bsdlabel.8; πριν πιέσετε
- <keycap>Return</keycap>.</para>
- </warning>
- </sect2>
-
- <sect2 xml: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 xml: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 xml: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>-options</optional>
- <optional>kernelname</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>topic</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>-t
- type</optional>
- <replaceable>filename</replaceable></term>
-
- <listitem>
- <para>Φορτώνει τον πυρήνα, το άρθρωμα πυρήνα ή ένα αρχείο του
- τύπου που καθορίστηκε, με βάση το όνομα αρχείου που δόθηκε.
- Αν μετά το όνομα αρχείου υπάρχουν παράμετροι, περνιούνται ως
- παράμετροι στο αρχείο που φορτώνεται.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ls <optional>-l</optional>
- <optional>path</optional></term>
-
- <listitem>
- <para>Δείχνει ένα κατάλογο των αρχείων της διαδρομής που
- δόθηκε, ή αν δεν καθορίστηκε διαδρομή, του ριζικού καταλόγου.
- Αν δοθεί και η επιλογή <option>-l</option> θα εμφανίζονται
- επίσης και τα μεγέθη των αρχείων.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lsdev <optional>-v</optional></term>
-
- <listitem>
- <para>Εμφανίζει όλες τις συσκευές από τις οποίες είναι δυνατή η
- φόρτωση αρθρωμάτων. Αν δοθεί με την επιλογή
- <option>-v</option>, εμφανίζονται περισσότερες
- λεπτομέρειες.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>lsmod <optional>-v</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 xml:id="boot-loader-examples">
- <title>Παραδείγματα για τον Loader</title>
-
- <para>Εδώ θα βρείτε μερικά πρακτικά παραδείγματα σχετικά με την χρήση
- του loader:</para>
-
- <itemizedlist>
- <listitem>
- <para>Για να ξεκινήσετε το συνηθισμένο πυρήνα σας, αλλά σε
- κατάσταση ενός χρήστη:<indexterm><primary>single-user mode</primary></indexterm></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 kernel.old</userinput></screen>
-
- <para>Μπορείτε να χρησιμοποιήσετε το όνομα
- <filename>kernel.GENERIC</filename> για να αναφερθείτε στον
- αρχικό (generic) πυρήνα ο οποίος υπάρχει στο CD της
- εγκατάστασης, ή το <filename>kernel.old</filename> για να
- αναφερθείτε στον πυρήνα που είχατε εγκατεστημένο πριν (για
- παράδειγμα, τον παλιό σας πυρήνα αν κάνατε πρόσφατα ρύθμιση και
- εγκατάσταση νέου δικού σας προσαρμοσμένου πυρήνα).</para>
-
- <note>
- <para>Χρησιμοποιήστε το παρακάτω για να φορτώσετε τα συνηθισμένα
- σας αρθρώματα σε κάποιο άλλο πυρήνα:</para>
-
- <screen><userinput>unload</userinput>
-<userinput>set kernel="kernel.old"</userinput>
-<userinput>boot-conf</userinput></screen>
- </note>
- </listitem>
-
- <listitem>
- <para>Για να φορτώσετε ένα script ρύθμισης πυρήνα (ένα
- αυτοματοποιημένο πρόγραμμα το οποίο εκτελεί τις λειτουργίες που
- κανονικά θα κάνατε μέσω κάποιου προγράμματος ρύθμισης πυρήνα
- κατά την εκκίνηση):</para>
-
- <screen><userinput>load -t userconfig_script /boot/kernel.conf</userinput></screen>
- </listitem>
- </itemizedlist>
- </sect3>
-
- <sect3 xml:id="boot-splash">
- <info><title>Γραφική Οθόνη Εκκίνησης</title>
- <authorgroup>
- <author><personname><firstname>Joseph J.</firstname><surname>Barbish</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 xml:id="boot-splash-function">
- <title>Λειτουργία της Γραφικής Οθόνης Εκκίνησης</title>
-
- <para>Η γραφική οθόνη εκκίνησης υποστηρίζει εικόνες bitmap
- (<filename>.bmp</filename>), ZSoft <acronym>PCX</acronym>
- (<filename>.pcx</filename>) ή TheDraw (<filename>.bin</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>Μπορείτε να κατεβάσετε υποδείγματα εικόνων για χρήση στην
- εκκίνηση, από τη συλλογή εικόνων στην τοποθεσία <link xlink:href="http://artwork.freebsdgr.org/node/3">http://artwork.freebsdgr.org</link>.
- Αν εγκαταστήσετε το Port <package>sysutils/bsd-splash-changer</package>, θα έχετε
- τυχαία εναλλαγή εικόνων (που θα επιλέγονται από μια έτοιμη
- συλλογή) σε κάθε εκκίνηση του συστήματος.</para>
- </sect4>
-
- <sect4 xml:id="boot-splash-enable">
- <title>Ενεργοποίηση της Γραφικής Οθόνης Εκκίνησης</title>
-
- <para>Το αρχείο που θα χρησιμοποιηθεί για την γραφική οθόνη
- εκκίνησης (τύπου <filename>.bmp</filename>,
- <filename>.pcx</filename> ή <filename>.bin</filename>) θα πρέπει
- να τοποθετηθεί στην ριζική (root) κατάτμηση, για παράδειγμα στον
- κατάλογο <filename>/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>/boot/splash.bmp</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>Στην έκδοση 8.3, μια ακόμα επιλογή είναι η χρήση ascii art
- σε μορφή <link xlink:href="https://en.wikipedia.org/wiki/TheDraw">The
- Draw</link>.</para>
-
- <programlisting>splash_txt="YES"
-bitmap_load="YES"
-bitmap_name="<replaceable>/boot/splash.bin</replaceable>"</programlisting>
-
- <para>Το όνομα αρχείου δεν είναι απαραίτητο να είναι
- <quote>splash</quote> όπως φαίνεται στο παραπάνω παράδειγμα.
- Μπορεί να είναι οτιδήποτε, αρκεί να πρόκειται για αρχείο των
- τύπων που αναφέραμε παραπάνω, για παράδειγμα
- <filename>splash_640x400.bmp</filename>
- ή
- <filename>blue_wave.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 xml: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 xml:id="boot-kernel-bootflags">
- <title>Παράμετροι Εκκίνησης Πυρήνα (Boot Flags)</title>
-
- <indexterm>
- <primary>kernel</primary>
- <secondary>bootflags</secondary>
- </indexterm>
-
- <para>Παρακάτω θα βρείτε τις πιο συνηθισμένες παραμέτρους
- εκκίνησης:</para>
-
- <variablelist xml: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 xml:id="device-hints">
- <info><title>Device Hints</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <indexterm>
- <primary>device.hints</primary>
- </indexterm>
-
- <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="value"</userinput></screen>
-
- <para>Η σύνταξη για το Στάδιο 3 του boot loader είναι:</para>
-
- <screen><userinput>set hint.driver.unit.keyword=value</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 xml:id="boot-init">
- <title>Init: Αρχικοποίηση Ελέγχου Διαδικασιών</title>
-
- <indexterm>
- <primary><command>init</command></primary>
- </indexterm>
-
- <para>Μόλις ολοκληρωθεί η εκκίνηση του πυρήνα, ο έλεγχος μεταφέρεται στην
- διαδικασία χρήστη &man.init.8;, η οποία βρίσκεται στο αρχείο
- <filename>/sbin/init</filename>, ή στη διαδρομή που καθορίζεται στην
- μεταβλητή <envar>init_path</envar> του <command>loader</command>.</para>
-
- <sect2 xml:id="boot-autoreboot">
- <title>Ακολουθία Αυτόματης Επανεκκίνησης</title>
-
- <para>Η ακολουθία αυτόματης επανεκκίνησης εξασφαλίζει ότι τα συστήματα
- αρχείων είναι σε κανονική, σταθερή κατάσταση. Αν δεν είναι, και η
- &man.fsck.8; δεν μπορεί να διορθώσει τα προβλήματα, τότε η
- &man.init.8; θα μεταφέρει το σύστημα σε
- <link linkend="boot-singleuser">κατάσταση λειτουργίας ενός
- χρήστη</link> ώστε να μπορέσει άμεσα ο διαχειριστής συστήματος να
- επιληφθεί των προβλημάτων αυτών.</para>
- </sect2>
-
- <sect2 xml: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>, το σύστημα θα ζητήσει τον κωδικό
- του <systemitem class="username">root</systemitem> πριν εισέλθει σε κατάσταση λειτουργίας
- ενός χρήστη.</para>
-
- <example xml: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> (ανασφαλής) κονσόλα σημαίνει
- ότι δεν θεωρείτε ασφαλή την κονσόλα όσο αφορά τη φυσική της πρόσβαση
- και θέλετε να είστε βέβαιος ότι μόνο όποιος γνωρίζει τον κωδικό του
- <systemitem class="username">root</systemitem> θα μπορεί να χρησιμοποιήσει τη λειτουργία
- ενός χρήστη. Η επιλογή αυτή δεν σημαίνει ότι θέλετε η κονσόλα σας
- να λειτουργεί χωρίς ασφάλεια. Αν θέλετε ασφάλεια, θα πρέπει να
- επιλέξετε <literal>insecure</literal>, όχι
- <literal>secure</literal>.</para>
- </note>
- </sect2>
-
- <sect2 xml: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 xml:id="boot-rc">
- <title>Ρύθμιση Πόρων (rc)</title>
-
- <indexterm><primary>rc files</primary></indexterm>
-
- <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 xml: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>. Θα
- πρέπει να είστε <systemitem class="username">root</systemitem> ή μέλος της ομάδας
- <systemitem class="groupname">operator</systemitem> για να εκτελέσετε την &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>
diff --git a/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.xml b/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.xml
deleted file mode 100644
index 651190c5fc..0000000000
--- a/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.xml
+++ /dev/null
@@ -1,2776 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
- Το Εγχειρίδιο του FreeBSD: Εγκατάσταση του FreeBSD 9.0
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/bsdinstall/chapter.xml
- %SRCID% 43414
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="bsdinstall">
-
- <info>
- <title>Εγκατάσταση του &os;&nbsp;9.<replaceable>x</replaceable>
- και Μεταγενέστερων Εκδόσεων</title>
- <authorgroup>
- <author>
- <personname>
- <firstname>Jim</firstname>
- <surname>Mock</surname>
- </personname>
-
- <contrib>Αναδιοργανώθηκε και τμήματα του ξαναγράφηκαν από
- τον </contrib>
- </author>
- </authorgroup>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Randy</firstname>
- <surname>Pratt</surname>
- </personname>
-
- <contrib>Η βήμα προς βήμα εγκατάσταση sysinstall, οι εικόνες και
- και γενική αντιγραφή από </contrib>
- </author>
- </authorgroup>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Gavin</firstname>
- <surname>Atkinson</surname>
- </personname>
-
- <contrib>Ανανεώθηκε για το bsdinstall από τον </contrib>
- </author>
-
- <author>
- <personname>
- <firstname>Warren</firstname>
- <surname>Block</surname>
- </personname>
- </author>
- </authorgroup>
- </info>
-
- <sect1 xml: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 xml:id="bsdinstall-hardware">
- <title>Απαιτήσεις Υλικού</title>
-
- <sect2 xml: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; στο <link xlink:href="http://www.freebsd.org/platforms/sparc.html">FreeBSD/sparc64</link> Project.</para>
-
- <para>Θα χρειαστείτε ένα δίσκο για αποκλειστική χρήση από το
- &os;/&arch.sparc64;. Τη δεδομένη στιγμή, δεν είναι δυνατόν το
- &os;/&arch.sparc64; να μοιράζεται τον ίδιο δίσκο με ένα άλλο
- λειτουργικό σύστημα.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="bsdinstall-hardware-supported">
- <title>Υποστηριζόμενο Υλικό</title>
-
- <para>Στις Σημειώσεις Υλικού (Hardware Notes) μπορείτε να βρείτε
- πληροφορίες για τις αρχιτεκτονικές και τις συσκευές που
- υποστηρίζονται από μια επίσημη έκδοση του &os;. Το αρχείο αυτό
- ονομάζεται συνήθως <filename>HARDWARE.TXT</filename>, και βρίσκεται
- στον κεντρικό κατάλογο του μέσου εγκατάστασης. Μπορείτε επίσης να
- βρείτε αντίγραφα αυτού του καταλόγου στη σελίδα <link
- xlink:href="http://www.FreeBSD.org/releases/index.html">Πληροφοριών
- Έκδοσης</link> στο δικτυακό τόπο του &os;.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="bsdinstall-pre">
- <title>Εργασίες πριν την Εγκατάσταση</title>
-
- <sect2>
- <title>Κρατήστε Αντίγραφα Ασφαλείας των Δεδομένων σας</title>
-
- <para>Κρατήστε αντίγραφα ασφαλείας όλων των σημαντικών δεδομένων
- του υπολογιστή στον οποίο θα κάνετε εγκατάσταση του &os;.
- Ελέγξτε τη σωστή λειτουργία των αντιγράφων ασφαλείας πριν συνεχίσετε.
- Το πρόγραμμα εγκατάστασης του &os; θα ζητήσει επιβεβαίωση πριν
- κάνει οποιαδήποτε αλλαγή στο δίσκο σας, αλλά από τη στιγμή που
- αυτή η διαδικασία ξεκινήσει, δεν υπάρχει δυνατότητα
- επιστροφής.</para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-where">
- <title>Αποφασίστε που θα Εγκαταστήσετε το &os;</title>
-
- <para>Αν το &os; πρόκειται να είναι το μοναδικό λειτουργικό σύστημα
- του υπολογιστή και σκοπεύετε να διαθέσετε σε αυτό ολόκληρο το
- χώρο του σκληρού σας δίσκου, μπορείτε να παραλείψετε το υπόλοιπο αυτής
- της ενότητας. Αν ωστόσο θέλετε να συνυπάρχει το &os; με
- άλλα λειτουργικά συστήματα, είναι χρήσιμο να κατανοείτε γενικά τον
- τρόπο διάταξης των δεδομένων στο δίσκο.</para>
-
- <sect3 xml:id="bsdinstall-where-i386">
- <title>Κατατμήσεις Δίσκων για τις Αρχιτεκτονικές &os;/&arch.i386;
- και &os;/&arch.amd64;</title>
-
- <para>Οι σκληροί δίσκοι μπορούν να χωριστούν σε διακριτά τμήματα.
- Τα τμήματα αυτά ονομάζονται
- <emphasis>κατατμήσεις (partitions)</emphasis>.</para>
-
- <para>Υπάρχουν δύο τρόποι για να χωριστεί ένας δίσκος σε κατατμήσεις.
- Ο παραδοσιακός τρόπος χρησιμοποιεί το
- <emphasis>Master Boot Record (Βασική Εγγραφή Εκκίνησης)</emphasis>
- ή <acronym>MBR</acronym>,
- ένα πίνακα κατατμήσεων ικανό να αποθηκεύσει ως τέσσερις
- <emphasis>πρωτεύουσες κατατμήσεις (primary partitions)</emphasis>.
- (Για ιστορικούς λόγους, το &os; ονομάζει τις πρωτεύουσες κατατμήσεις
- <emphasis>slices ή φέτες</emphasis>.) Το όριο των τεσσάρων
- κατατμήσεων είναι πολύ περιοριστικό για μεγάλους δίσκους, έτσι μια
- από αυτές τις κατατμήσεις μπορεί να μετατραπεί σε
- <emphasis>εκτεταμένη κατάτμηση (extended partition)</emphasis>.
- Μέσα στην εκτεταμένη κατάτμηση μπορούν να δημιουργηθούν πολλαπλές
- <emphasis>λογικές κατατμήσεις (logical partitions)</emphasis>.
- Αυτό ακούγεται κάπως παράξενο, και μάλλον είναι.</para>
-
- <para>Ο <emphasis>Πίνακας Κατατμήσεων GUID (GUID Partition
- Table)</emphasis> ή <acronym>GPT</acronym>, αποτελεί μια νέα
- και απλούστερη μέθοδος κατάτμησης ενός δίσκου. Το
- <acronym>GPT</acronym> είναι πολύ
- πιο βολικό από τον παραδοσιακό πίνακα κατατμήσεων MBR.
- Οι συνήθεις υλοποιήσεις του <acronym>GPT</acronym> επιτρέπουν ως
- και 128 κατατμήσεις ανά δίσκο, εξαλείφοντας έτσι την ανάγκη
- για άβολες λύσεις όπως οι λογικές κατατμήσεις.</para>
-
- <warning>
- <para>Κάποια παλιότερα λειτουργικά συστήματα όπως τα
- &windows;&nbsp;XP δεν είναι συμβατά με το σύστημα κατατμήσεων
- <acronym>GPT</acronym>. Αν το &os; πρόκειται να εγκατασταθεί
- σε ένα δίσκο από κοινού με ένα τέτοιο λειτουργικό, θα πρέπει να
- χρησιμοποιήσετε το σύστημα <acronym>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>Υπάρχει πληθώρα <link
- xlink:href="http://en.wikipedia.org/wiki/List_of_disk_partitioning_software">ελεύθερων και εμπορικών εργαλείων αναδιανομής χώρου κατατμήσεων</link>.
- Το <link
- xlink:href="http://gparted.sourceforge.net/livecd.php">GParted
- Live</link> είναι ένα δωρεάν Live CD το οποίο περιλαμβάνει
- τον επεξεργαστή κατατμήσεων <application>GParted</application>.
- Το <application>GParted</application> περιλαμβάνεται
- επίσης σε πολλές άλλες 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; ονομάζονται
- <filename>C:</filename> και <filename>D:</filename>.
- Η κατάτμηση <filename>C:</filename> περιέχει 10&nbsp;GB
- δεδομένων, ενώ η κατάτμηση <filename>D:</filename>
- 5&nbsp;GB.</para>
-
- <para>Η μετακίνηση των δεδομένων από τον <filename>D:</filename>
- στο <filename>C:</filename> ελευθερώνει τη δεύτερη κατάτμηση
- ώστε να μπορεί να χρησιμοποιηθεί από το &os;.</para>
- </example>
-
- <example>
- <title>Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση</title>
-
- <para>Ένας υπολογιστής &windows; έχει ένα μοναδικό σκληρό δίσκο
- 40&nbsp;GB και μια μεγάλη κατάτμηση που τον καταλαμβάνει
- εξ' ολοκλήρου. Τα &windows; δείχνουν αυτή την κατάτμηση των
- 40&nbsp;GB ως ένα μοναδικό οδηγό <filename>C:</filename>.
- Τη δεδομένη στιγμή χρησιμοποιούνται 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 xml:id="bsdinstall-collect-network-information">
- <title>Συλλέξτε Πληροφορίες για το Δίκτυο</title>
-
- <para>Κάποιες μέθοδοι εγκατάστασης του &os; χρειάζονται μια σύνδεση
- δικτύου για να κατεβάσουν αρχεία. Για να συνδεθείτε με ένα δίκτυο
- Ethernet (ή μέσω καλωδιακού ή DSL modem με διεπαφή Ethernet),
- το πρόγραμμα εγκατάστασης θα σας ζητήσει πληροφορίες σχετικά
- με το δίκτυο σας.</para>
-
- <para>Συχνά, γίνεται χρήση του
- <emphasis><acronym>DHCP</acronym></emphasis>
- ώστε οι ρυθμίσεις του δικτύου να γίνονται αυτόματα. Αν δεν
- διαθέτετε <acronym>DHCP</acronym>, θα πρέπει να βρείτε
- τις παρακάτω πληροφορίες από τον τοπικό σας διαχειριστή δικτύου
- ή τον παροχέα των υπηρεσιών σας:</para>
-
- <orderedlist>
- <title>Πληροφορίες Δικτύου</title>
-
- <listitem>
- <para>Διεύθυνση <acronym>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>DNS</acronym></para>
- </listitem>
- </orderedlist>
- </sect2>
-
- <sect2>
- <title>Ελέγξτε για Παροράματα (Errata) στο &os;</title>
-
- <para>Αν και το &os;&nbsp;Project πασχίζει για να εξασφαλίσει ότι
- κάθε νέα έκδοση του &os; θα είναι όσο πιο σταθερή γίνεται, ορισμένες
- φορές στη διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες
- περιπτώσεις, τα λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης.
- Καθώς τα προβλήματα αυτά γίνονται αντιληπτά και επιδιορθώνονται,
- σημειώνονται στα <link
- xlink:href="&url.base;/releases/9.0R/errata.html">Παροράματα του
- FreeBSD</link> στη δικτυακή τοποθεσία του &os;. Ελέγξτε τα
- παροράματα πριν ξεκινήσετε την εγκατάσταση, για να βεβαιωθείτε
- ότι δεν υπάρχουν προβλήματα που μπορούν να επηρεάσουν τη
- διαδικασία.</para>
-
- <para>Μπορείτε να βρείτε πληροφορίες και παροράματα για όλες τις
- εκδόσεις στη σελίδα <link
- xlink:href="&url.base;/releases/index.html">πληροφοριών
- έκδοσης</link> στην <link
- xlink:href="&url.base;/index.html">δικτυακή τοποθεσία
- του &os;</link>.</para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-installation-media">
- <title>Προετοιμάστε τα Μέσα Εγκατάστασης</title>
-
- <para>Η εγκατάσταση του &os; ξεκινάει με την εκκίνηση του υπολογιστή
- με τη χρήση ενός &os;&nbsp;CD, DVD ή μνήμης USB. Το πρόγραμμα
- εγκατάστασης δεν μπορεί να εκτελεστεί μέσα από κάποιο άλλο
- λειτουργικό σύστημα.</para>
-
- <para>Εκτός από τα τυποποιημένα μέσα εγκατάστασης που περιέχουν όλα
- τα απαραίτητα αρχεία εγκατάστασης του &os;, διατίθεται επίσης
- και η εκδοχή <emphasis>bootonly</emphasis>. Αυτό το μέσο
- εγκατάστασης δεν περιέχει τα απαραίτητα αρχεία, αλλά τα κατεβάζει
- από το δίκτυο κατά τη διάρκεια της εγκατάστασης. Κατά συνέπεια,
- το συγκεκριμένο CD είναι αρκετά μικρότερο σε μέγεθος ενώ και το
- απαιτούμενο εύρος ζώνης του δικτύου περιορίζεται καθώς
- κατεβαίνουν μόνο τα αρχεία που απαιτούνται.</para>
-
- <para>Μπορείτε να βρείτε έτοιμα μέσα εγκατάστασης για το &os; στην
- <link xlink:href="&url.base;/where.html#download">δικτυακή
- τοποθεσία του &os;.</link>. Κατεβάστε επίσης το αρχείο
- <filename>CHECKSUM.SHA256</filename> από τον ίδιο κατάλογο
- που περιέχει και το αρχείο εγκατάστασης και χρησιμοποιήστε
- το για να ελέγξετε την ακεραιότητα του αρχείου εγκατάστασης
- υπολογίζοντας το <emphasis>Άθροισμα Ελέγχου (checksum)</emphasis>.
- Το &os; διαθέτει το &man.sha256.1; για αυτό το σκοπό και θα
- βρείτε αντίστοιχα προγράμματα και σε άλλα λειτουργικά
- συστήματα. Επαληθεύστε το άθροισμα ελέγχου σύμφωνα με αυτό
- που αναγράφεται στο αρχείο <filename>CHECKSUM.SHA256</filename>.
- Τα αθροίσματα πρέπει να είναι ίδια. Αν δεν είναι, το αρχείο
- εγκατάστασης αλλοιώθηκε κατά το κατέβασμα και είναι
- άχρηστο.</para>
-
- <tip>
- <para>Αν διαθέτετε ήδη ένα CDROM, DVD ή USB οδηγό εγκατάστασης
- &os;, μπορείτε να παραλείψετε αυτή την ενότητα.</para>
- </tip>
-
- <para>Τα CD και DVD αρχεία ISO του &os; είναι εκκινήσιμα.
- Χρειάζεστε μόνο ένα από αυτά για την εγκατάσταση. Γράψτε το
- αρχείο ISO σε ένα CD ή DVD χρησιμοποιώντας τα αντίστοιχα
- προγράμματα εγγραφής που διαθέτει το τρέχον λειτουργικό σας
- σύστημα. Στο &os;, η εγγραφή μπορείτε να γίνει με το
- πρόγραμμα &man.cdrecord.1; από το port
- <filename>sysutils/cdrtools</filename> που μπορείτε να
- εγκαταστήσετε από τη Συλλογή των Ports.</para>
-
- <para>Για να δημιουργήσετε μια εκκινήσιμη μνήμη Flash (USB),
- ακολουθήστε τα παρακάτω βήματα:</para>
-
- <procedure xml:id="bsdinstall-installation-media-memory-stick">
- <step>
- <title>Ανακτήστε το Αρχείο ISO για τη Μνήμη Flash</title>
-
- <para>Για το &os;&nbsp;9.0-RELEASE και μεταγενέστερες εκδόσεις,
- μπορείτε να κατεβάσετε το αντίστοιχο αρχείο από τον κατάλογο
- <filename>ISO-IMAGES/</filename>
- στην τοποθεσία
- <literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/arch/ISO-IMAGES/version/&os;-version-RELEASE-arch-memstick.img</literal>.
- Αντικαταστήστε το <replaceable>arch</replaceable> και το
- <replaceable>version</replaceable> με την αρχιτεκτονική και την
- έκδοση που θέλετε να εγκαταστήσετε. Για παράδειγμα, το αρχείο
- για το &os;/&arch.i386;&nbsp;9.0-RELEASE βρίσκεται στη θέση
- <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/9.0/&os;-9.0-RELEASE-&arch.i386;-memstick.img">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/9.0/&os;-9.0-RELEASE-&arch.i386;-memstick.img</uri>.</para>
-
- <tip>
- <para>Ο κατάλογος είναι διαφορετικός για το
- &os;&nbsp;8.<replaceable>X</replaceable> και προηγούμενες
- εκδόσεις. Για περισσότερες πληροφορίες σχετικά με το
- κατέβασμα και την εγκατάσταση του
- &os;&nbsp;8.<replaceable>X</replaceable> και προηγούμενων
- εκδόσεων, δείτε το <xref linkend="install"/>.</para>
- </tip>
-
- <para>Το αρχείο για τη μνήμη Flash έχει επέκταση
- <filename>.img</filename>. Ο κατάλογος
- <filename>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>/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/da0 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. Μπορείτε να το κατεβάσετε
- από την τοποθεσία <uri
- xlink:href="https://launchpad.net/win32-image-writer/">https://launchpad.net/win32-image-writer/</uri>
- και να το αποσυμπιέσετε σε ένα φάκελο.</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 xml: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 xml:id="bsdinstall-starting">
- <title>Εκκίνηση</title>
-
- <sect3 xml: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>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> της μητρικής σας δεν
- υποστηρίζει εκκίνηση από το μέσο που έχετε επιλέξει.
- Μπορείτε να χρησιμοποιήσετε τον <link
- xlink:href="http://www.plop.at/en/bootmanager.html">Plop
- Boot Manager</link> για να εκκινήσετε παλιά μηχανήματα
- από 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 xml:id="bsdinstall-boot-loader-menu">
- <title>Μενού Φορτωτή Εκκίνησης του &os;</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-boot-loader-menu"/>
- </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 &gt;</prompt> γράψτε:</para>
-
- <screen><userinput>boot cd:,\ppc\loader cd:0</userinput></screen>
-
- <para>Σε μηχανήματα Xserve χωρίς πληκτρολόγιο, δείτε την
- <link
- xlink:href="http://support.apple.com/kb/TA26930">σελίδα
- τεχνικής υποστήριξης της &apple;</link> για πληροφορίες
- εκκίνησης στο Open Firmware.</para>
- </sect3>
-
- <sect3>
- <title>Εκκίνηση στον &sparc64;</title>
-
- <para>Τα περισσότερα συστήματα &sparc64; είναι ρυθμισμένα να εκκινούν
- αυτόματα από το σκληρό δίσκο. Για να εγκαταστήσετε το &os;, θα
- πρέπει να εκκινήσετε από το δίκτυο ή από ένα CDROM. Θα χρειαστεί
- να εισέλθετε στις ρυθμίσεις της <acronym>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>PROM</acronym> η οποία
- μοιάζει με την παρακάτω:</para>
-
- <screen><prompt>ok </prompt><co xml:id="bsdinstall-prompt-single"/>
-<prompt>ok {0} </prompt><co xml:id="bsdinstall-prompt-smp"/></screen>
-
- <calloutlist>
- <callout arearefs="bsdinstall-prompt-single">
- <para>Αυτή η προτροπή φαίνεται σε συστήματα με μόνο μία
- CPU.</para>
- </callout>
-
- <callout arearefs="bsdinstall-prompt-smp">
- <para>Αυτή η προτροπή φαίνεται σε συστήματα SMP. Το ψηφίο
- δείχνει τον αριθμό της ενεργής CPU.</para>
- </callout>
- </calloutlist>
-
- <para>Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό και
- στην προτροπή της <acronym>PROM</acronym> γράψτε
- <command>boot cdrom</command>.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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 xml: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 xml:id="bsdinstall-choose-mode">
- <title>Επιλογή Τρόπου Λειτουργίας Μέσου Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-choose-mode"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε <guibutton>[&nbsp;Install&nbsp;]</guibutton> για να
- ξεκινήσετε το πρόγραμμα εγκατάστασης.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="using-bsdinstall">
- <title>Εισαγωγή στο <application>bsdinstall</application></title>
-
- <para>Το <application>bsdinstall</application> είναι μια εφαρμογή
- εγκατάστασης για το &os; που βασίζεται σε περιβάλλον κειμένου.
- Γράφτηκε από τον &a.nwhitehorn.email; και χρησιμοποιήθηκε πρώτη φορά
- το 2011 στο &os;&nbsp;9.0.</para>
-
- <note>
- <para>Η εφαρμογή <application>pc-sysinstall</application>
- του &a.kmoore.email; συμπεριλαμβάνεται με το <link
- xlink:href="http://pcbsd.org">PC-BSD</link> και μπορεί επίσης να
- χρησιμοποιηθεί για την <link
- xlink:href="http://wiki.pcbsd.org/index.php/Use_PC-BSD_Installer_to_Install_FreeBSD">εγκατάσταση του &os;</link>. Αν και μερικές φορές συγχέεται
- με το <application>bsdinstall</application> οι δύο αυτές εφαρμογές
- δεν σχετίζονται.</para>
- </note>
-
- <para>Το σύστημα μενού του <application>bsdinstall</application>
- ελέγχεται μέσω των πλήκτρων με τα βελάκια και τα πλήκτρα
- <keycap>Enter</keycap>, <keycap>Tab</keycap>,
- <keycap>Space</keycap> και μερικά ακόμα.</para>
-
- <sect2 xml:id="bsdinstall-keymap">
- <title>Επιλογές στο Μενού Keymap</title>
-
- <para>Ανάλογα με το είδος της κονσόλας που χρησιμοποιείτε, το
- <application>bsdinstall</application> ίσως σας ρωτήσει
- αν επιθυμείτε να επιλέξετε μια διάταξη πληκτρολογίου διαφορετική από
- την προεπιλεγμένη.</para>
-
- <figure xml:id="bsdinstall-keymap-select-default">
- <title>Επιλογή Διάταξης Πληκτρολογίου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-keymap-select-default"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αν επιλέξετε <guibutton>[&nbsp;YES&nbsp;]</guibutton> θα
- εμφανιστεί η οθόνη επιλογής που φαίνεται παρακάτω. Σε διαφορετική
- περίπτωση, η οθόνη αυτή δεν θα εμφανιστεί και θα χρησιμοποιηθεί
- η προεπιλεγμένη διάταξη πληκτρολογίου.</para>
-
- <figure xml:id="bsdinstall-config-keymap">
- <title>Μενού Επιλογής Διάταξης Πληκτρολογίου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-config-keymap"/>
- </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 xml:id="bsdinstall-hostname">
- <title>Καθορισμός Ονόματος Υπολογιστή (hostname)</title>
-
- <para>Στο επόμενο βήμα, το <application>bsdinstall</application>
- θα σας ρωτήσει για το όνομα υπολογιστή (hostname) το οποίο θα δοθεί
- στο νέο σύστημα.</para>
-
- <figure xml:id="bsdinstall-config-hostname">
- <title>Καθορισμός Ονόματος Υπολογιστή</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-config-hostname"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το όνομα που θα δώσετε πρέπει να περιλαμβάνει και τον τομέα
- (fully-qualified) όπως για παράδειγμα <systemitem
- class="fqdomainname">machine3.example.com</systemitem></para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-components">
- <title>Επιλογή Στοιχείων Εγκατάστασης</title>
-
- <para>Στο επόμενο βήμα, το <application>bsdinstall</application>
- θα σας καλέσει να επιλέξετε ποια προαιρετικά στοιχεία του
- λειτουργικού επιθυμείτε να εγκαταστήσετε.</para>
-
- <figure xml:id="bsdinstall-config-components">
- <title>Επιλογή Στοιχείων Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-config-components"/>
- </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 xml:id="bsdinstall-netinstall">
- <title>Εγκατάσταση από το Δίκτυο</title>
-
- <para>Το μέσο εγκατάστασης <emphasis>bootonly</emphasis>
- δεν διαθέτει αντίγραφα των αρχείων εγκατάστασης. Όταν
- χρησιμοποιείτε την μέθοδο <emphasis>bootonly</emphasis>, τα
- αρχεία μεταφορτώνονται από το δίκτυο κατά απαίτηση.</para>
-
- <figure xml:id="bsdinstall-netinstall-notify">
- <title>Εγκατάσταση από το Δίκτυο</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-netinstall-files"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετά την ρύθμιση των παραμέτρων δικτύου όπως φαίνεται στο
- <xref linkend="bsdinstall-config-network-dev"/>, γίνεται η επιλογή
- ενός mirror site. Τα mirror sites διαθέτουν αντίγραφα των αρχείων
- του &os;. Επιλέξτε ένα mirror site το οποίο βρίσκεται όσο το δυνατόν
- πιο κοντά στην περιοχή σας. Με τον τρόπο αυτό, η μεταφόρτωση των
- αρχείων θα είναι ταχύτερη και θα μειωθεί ο χρόνος εγκατάστασης.</para>
-
- <figure xml:id="bsdinstall-netinstall-mirror">
- <title>Επιλογή Mirror</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-netinstall-mirrorselect"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Η εγκατάσταση θα συνεχιστεί με τον ίδιο τρόπο όπως και αν τα
- αρχεία ήταν διαθέσιμα τοπικά.</para>
- </sect1>
-
- <sect1 xml: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 xml:id="bsdinstall-part-guided-manual">
- <title>Επιλογή Guided ή Manual Partitioning</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-guided-manual"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <sect2 xml:id="bsdinstall-part-guided">
- <title>Καθοδηγούμενη (Guided) Κατάτμηση</title>
-
- <para>Αν έχετε συνδέσει πολλαπλούς δίσκους, επιλέξτε αυτόν στον
- οποίο θα εγκαταστήσετε το &os;.</para>
-
- <figure xml:id="bsdinstall-part-guided-disk">
- <title>Επιλογή από Πολλαπλούς Δίσκους</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-guided-disk"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μπορείτε να εκχωρήσετε είτε ολόκληρο το δίσκο, είτε ένα μέρος του
- στο &os;. Αν επιλέξετε
- <guibutton>[&nbsp;Entire&nbsp;Disk&nbsp;]</guibutton>, θα
- δημιουργηθούν μια κατάλληλη διάταξη κατατμήσεων ώστε να
- χρησιμοποιηθεί ολόκληρος ο δίσκος. Αν επιλέξετε
- <guibutton>[&nbsp;Partition&nbsp;]</guibutton>, θα
- δημιουργηθεί μια διάταξη που θα καταλαμβάνει τον ελεύθερο χώρο
- του δίσκου.</para>
-
- <figure xml:id="bsdinstall-part-entire-part">
- <title>Επιλογή Ολόκληρου Δίσκου ή Κατάτμησης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-entire-part"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Ελέγξτε προσεκτικά τη διάταξη των κατατμήσεων που δημιουργήθηκε.
- Αν βρείτε κάποιο λάθος, επιλέξτε
- <guibutton>[&nbsp;Revert&nbsp;]</guibutton> για να επαναφέρετε
- τις προηγούμενες κατατμήσεις ή
- <guibutton>[&nbsp;Auto&nbsp;]</guibutton> για να δημιουργήσετε
- τις κατατμήσεις που προτείνονται αυτόματα από το &os;.
- Μπορείτε να δημιουργήσετε, να τροποποιήσετε και να διαγράψετε
- κατατμήσεις χειροκίνητα. Όταν οι κατατμήσεις είναι οι σωστές,
- επιλέξτε <guibutton>[&nbsp;Finish&nbsp;]</guibutton> για να
- συνεχίσετε με την εγκατάσταση.</para>
-
- <figure xml:id="bsdinstall-part-review">
- <title>Επισκόπηση Κατατμήσεων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-review"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
-
- <sect2 xml:id="bsdinstall-part-manual">
- <title>Χειροκίνητη Δημιουργία Κατατμήσεων </title>
-
- <para>Επιλέγοντας χειροκίνητη δημιουργία κατατμήσεων, θα μεταφερθείτε
- απευθείας στον επεξεργαστή κατατμήσεων.</para>
-
- <figure xml:id="bsdinstall-part-manual-create">
- <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-manual-create"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέγοντας ένα οδηγό (<filename>ada0</filename> στο
- παράδειγμα μας) και το πλήκτρο
- <guibutton>[&nbsp;Create&nbsp;]</guibutton> θα δείτε ένα μενού
- για την επιλογή του σχήματος κατατμήσεων (<firstterm>partitioning
- scheme</firstterm>).</para>
-
- <figure xml:id="bsdinstall-part-manual-partscheme">
- <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-manual-partscheme"/>
- </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><link
- xlink:href="http://support.apple.com/kb/TA21692">Apple
- Partition Map, χρησιμοποιείται στο &powerpc;
- &macintosh;.</link></entry>
- </row>
-
- <row>
- <entry>BSD</entry>
- <entry>Κατατμήσεις BSD χωρίς MBR, ορισμένες φορές καλούνται και
- <quote>επικίνδυνα αφοσιωμένη κατάσταση</quote>. Δείτε το
- &man.bsdlabel.8;.</entry>
- </row>
-
- <row>
- <entry>GPT</entry>
- <entry><link
- xlink:href="http://en.wikipedia.org/wiki/GUID_Partition_Table">Πίνακας Κατατμήσεων GUID.</link></entry>
- </row>
-
- <row>
- <entry>MBR</entry>
- <entry><link
- xlink:href="http://en.wikipedia.org/wiki/Master_boot_record">Master Boot Record.</link></entry>
- </row>
-
- <row>
- <entry>PC98</entry>
- <entry><link
- xlink:href="http://en.wikipedia.org/wiki/Pc9801">Παραλλαγή του MBR που χρησιμοποιείται σε υπολογιστές NEC PC-98.</link></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 xml:id="bsdinstall-part-manual-addpart">
- <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-part-manual-addpart"/>
- </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>Ένα άλλο αξιοσημείωτο είδος κατάτμησης, είναι το
- <literal>freebsd-zfs</literal>. Δείτε το <xref
- linkend="filesystems-zfs"/>. Μπορείτε να δείτε τα υπόλοιπα
- διαθέσιμα είδη κατατμήσεων <acronym>GPT</acronym> στο
- &man.gpart.8;.</para>
-
- <para>Μπορείτε να δημιουργήσετε πολλαπλά συστήματα αρχείων.
- Κάποιοι χρήστες προτιμούν τη δημιουργία των παραδοσιακών
- κατατμήσεων με χωριστά συστήματα αρχείων για τα
- <filename>/</filename>, <filename>/var</filename>, και
- <filename>/usr</filename>. Δείτε το <xref
- linkend="bsdinstall-part-manual-splitfs"/> για ένα
- παράδειγμα.</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>θα σας ζητηθεί επίσης μια ετικέτα
- (<emphasis>label</emphasis>). Η ετικέτα είναι ένα όνομα το
- οποίο δίνεται σε μια κατάτμηση. Το όνομα ενός δίσκου ή οι αριθμοί
- που περιγράφουν τις κατατμήσεις μπορεί να αλλάξουν αν
- ο δίσκος συνδεθεί σε άλλη θύρα ή ελεγκτή, αλλά
- η ετικέτα του παραμένει σταθερή. Με χρήση της ετικέτας σε αρχεία
- όπως το <filename>/etc/fstab</filename> το σύστημα γίνεται πιο
- ανεκτικό σε αλλαγές του υλικού. Οι ετικέτες GPT εμφανίζονται στον
- κατάλογο <filename>/dev/gpt/</filename> όταν
- γίνεται η προσάρτηση της συσκευής. Σε άλλα είδη κατατμήσεων υπάρχουν
- διαφορετικές δυνατότητες όσο αφορά τις ετικέτες, οι οποίες
- εμφανίζονται σε διαφορετικούς υποκαταλόγους στο
- <filename>/dev/</filename>.</para>
-
- <tip>
- <para>Χρησιμοποιήστε μοναδικές ετικέτες σε κάθε σύστημα αρχείων
- για να αποφύγετε συγκρούσεις που μπορεί να προκληθούν από όμοια
- ονόματα. Σε κάθε ετικέτα μπορείτε να συμπεριλάβετε μερικά
- γράμματα από το όνομα του υπολογιστή ή τη θέση του, ή ακόμα και
- τη χρήση του. Θα μπορούσατε για παράδειγμα να ονομάσετε τον
- κεντρικό κατάλογο <literal>labroot</literal> ή
- <literal>rootfs-lab</literal> σε ένα υπολογιστή που ανήκει σε ένα
- εργαστήριο.</para>
- </tip>
-
- <example xml:id="bsdinstall-part-manual-splitfs">
- <title>Δημιουργία Παραδοσιακών Κατατμήσεων στο Σύστημα Αρχείων</title>
-
- <para>Αν επιθυμείτε να χρησιμοποιήσετε το παραδοσιακό σύστημα
- κατατμήσεων του &os; όπου τα συστήματα αρχείων
- <filename>/</filename>, <filename>/var</filename>,
- <filename>/tmp</filename> και <filename>/usr</filename> βρίσκονται
- σε χωριστές κατατμήσεις, δημιουργήστε ένα πίνακα κατατμήσεων
- GPT και ορίστε τις κατατμήσεις με τον τρόπο που φαίνεται
- παρακάτω. Τα μεγέθη που φαίνονται είναι τυπικά για ένα σκληρό
- δίσκο χωρητικότητας 20G. Αν διαθέτετε περισσότερο χώρο, ίσως
- είναι χρήσιμο να μεγαλώσετε την κατάτμηση swap ή
- <filename>/var</filename>. Στο παράδειγμα μας, οι ετικέτες που
- χρησιμοποιούνται ξεκινούν με <literal>ex</literal> (από τη λέξη
- <quote>example</quote>) αλλά καλό θα είναι να χρησιμοποιήσετε
- δικές σας μονάδικες ετικέτες όπως αναφέραμε παραπάνω.</para>
-
- <para>Από προεπιλογή, το <filename>gptboot</filename> του &os;
- αναμένει την πρώτη UFS κατάτμηση ως <filename>/</filename>.</para>
-
- <informaltable frame="none">
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Τύπος Κατάτμησης</entry>
- <entry>Μέγεθος</entry>
- <entry>Σημείο Προσάρτησης</entry>
- <entry>Ετικέτα</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>freebsd-boot</literal></entry>
- <entry><literal>512K</literal></entry>
- </row>
-
- <row>
- <entry><literal>freebsd-ufs</literal></entry>
- <entry><literal>2G</literal></entry>
- <entry><filename>/</filename></entry>
- <entry><literal>exrootfs</literal></entry>
- </row>
-
- <row>
- <entry><literal>freebsd-swap</literal></entry>
- <entry><literal>4G</literal></entry>
- <entry/>
- <entry><literal>exswap</literal></entry>
- </row>
-
- <row>
- <entry><literal>freebsd-ufs</literal></entry>
- <entry><literal>2G</literal></entry>
- <entry><filename>/var</filename></entry>
- <entry><literal>exvarfs</literal></entry>
- </row>
-
- <row>
- <entry><literal>freebsd-ufs</literal></entry>
- <entry><literal>1G</literal></entry>
- <entry><filename>/tmp</filename></entry>
- <entry><filename>extmpfs</filename></entry>
- </row>
-
- <row>
- <entry><literal>freebsd-ufs</literal></entry>
- <entry>αποδεχθείτε την προεπιλογή (υπόλοιπος χώρος του
- δίσκου)</entry>
- <entry><filename>/usr</filename></entry>
- <entry><literal>exusrfs</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </example>
-
- <para>Μετά τη δημιουργία των προσαρμοσμένων κατατμήσεων, επιλέξτε
- <guibutton>[&nbsp;Finish&nbsp;]</guibutton> για να συνεχίσετε με την
- εγκατάσταση.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="bsdinstall-final-warning">
- <title>Επιβεβαίωση της Εγκατάστασης</title>
-
- <para>Σε αυτό το σημείο έχετε την τελευταία ευκαιρία να εγκαταλείψετε
- την εγκατάσταση χωρίς να γίνουν αλλαγές στο σκληρό δίσκο σας.</para>
-
- <figure xml:id="bsdinstall-final-confirmation">
- <title>Τελική Επιβεβαίωση</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-final-confirmation"/>
- </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 xml:id="bsdinstall-distfile-fetching">
- <title>Μεταφόρτωση Αρχείων Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-distfile-fetching"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Στη συνέχεια, θα γίνει έλεγχος ακεραιότητας των αρχείων
- εγκατάστασης για να επιβεβαιωθεί ότι δεν έχουν αλλοιωθεί κατά
- τη μεταφόρτωση ή κατά την ανάγνωση από το μέσο εγκατάστασης.</para>
-
- <figure xml:id="bsdinstall-distfile-verify">
- <title>Επαλήθευση Αρχείων Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-distfile-verifying"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Στο τελευταίο βήμα, τα επιβεβαιωμένα αρχεία εγκατάστασης θα
- εξαχθούν και θα γραφούν στο σκληρό δίσκο.</para>
-
- <figure xml:id="bsdinstall-distfile-extract">
- <title>Εξαγωγή Αρχείων Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-distfile-extracting"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Με το τέλος της εξαγωγής όλων των αρχείων εγκατάστασης, το
- <application>bsdinstall</application> θα εισέλθει στη διαδικασία
- ρυθμίσεων μετά την εγκατάσταση (δείτε <xref
- linkend="bsdinstall-post"/>).</para>
- </sect1>
-
- <sect1 xml:id="bsdinstall-post">
- <title>Μετά την Εγκατάσταση</title>
-
- <para>Μετά από μια επιτυχημένη εγκατάσταση του &os;, ακολουθεί μια
- σειρά ρυθμίσεων. Μπορείτε να επαναλάβετε οποιαδήποτε ρύθμιση
- αν εισέλθετε στην αντίστοιχη επιλογή στο τελικό μενού πριν
- επανεκκινήσετε στο νέο-εγκατεστημένο σας &os; σύστημα.</para>
-
- <sect2 xml:id="bsdinstall-post-root">
- <title>Ρύθμιση του Κωδικού του <systemitem class="username">root</systemitem></title>
-
- <para>Θα πρέπει να ορίσετε ένα κωδικό πρόσβασης για το χρήστη
- <systemitem class="username">root</systemitem>. Παρατηρήστε ότι
- δεν φαίνονται τα γράμματα που πληκτρολογείτε καθώς εισάγετε τον
- κωδικό. Μετά την εισαγωγή του κωδικού, θα πρέπει να τον εισάγετε
- ακόμα μια φορά. Με τον τρόπο αυτό εξασφαλίζεται ότι δεν έχει γίνει
- κάποιο λάθος κατά την πληκτρολόγηση.</para>
-
- <figure xml:id="bsdinstall-post-set-root-passwd">
- <title>Ρύθμιση του Κωδικού του <systemitem class="username">root</systemitem></title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-post-root-passwd"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Η εγκατάσταση συνεχίζεται μετά την επιτυχή εισαγωγή του
- κωδικού.</para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-config-network-dev">
- <title>Ρύθμιση Καρτών Δικτύου</title>
-
- <note>
- <para>Η ρύθμιση του δικτύου παραλείπεται αν έχει ήδη πραγματοποιηθεί
- στα πλαίσια μιας εγκατάστασης <emphasis>bootonly</emphasis>.</para>
- </note>
-
- <para>Θα δείτε μια λίστα με όλες τις διεπαφές δικτύου που
- ανιχνεύθηκαν στον υπολογιστή σας. Επιλέξτε αυτή που επιθυμείτε
- να ρυθμίσετε.</para>
-
- <figure xml:id="bsdinstall-configure-net-interface">
- <title>Επιλογή μιας Διεπαφής Δικτύου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <sect3 xml:id="bsdinstall-configure-net-wireless">
- <title>Ρύθμιση Ασύρματης Κάρτας Δικτύου</title>
-
- <para>Αν επιλέξετε να ρυθμίσετε μια ασύρματη διεπαφή δικτύου, θα
- πρέπει να ρυθμίσετε τις παραμέτρους αναγνώρισης και ασφάλειας
- για να συνδεθείτε στο δίκτυο.</para>
-
- <para>Τα ασύρματα δίκτυα αναγνωρίζονται από το Αναγνωριστικό
- Υπηρεσίας ή Service Set Identifier (<acronym>SSID</acronym>).
- Το <acronym>SSID</acronym> είναι ένα σύντομο μοναδικό
- όνομα που αποδίδεται σε κάθε ασύρματο δίκτυο.</para>
-
- <para>Τα περισσότερα ασύρματα δίκτυα κρυπτογραφούν τα δεδομένα
- που μεταδίδονται για να προστατεύσουν τις πληροφορίες από
- μη εξουσιοδοτημένη χρήση. Συνίσταται να χρησιμοποιήσετε
- κρυπτογράφηση <acronym>WPA2</acronym>. Παλαιότερες
- μέθοδοι κρυπτογράφησης όπως το <acronym>WEP</acronym> προσφέρουν
- ελάχιστη ασφάλεια.</para>
-
- <para>Το πρώτο βήμα για να συνδεθείτε σε ένα ασύρματο δίκτυο είναι
- να σαρώσετε για Σημεία Ασύρματης Πρόσβασης (Access Points).</para>
-
- <figure xml:id="bsdinstall-wireless-scan">
- <title>Σάρωση για Access Points</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-scan"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Τα <acronym>SSIDs</acronym> που
- θα βρείτε κατά τη διάρκεια της σάρωσης συνοδεύονται από τα
- είδη κρυπτογράφησης που διατίθενται για κάθε δίκτυο. Αν δεν
- βλέπετε το <acronym>SSID</acronym>
- που επιθυμείτε στη λίστα, επιλέξτε
- <guibutton>[&nbsp;Rescan&nbsp;]</guibutton> για να εκτελέσετε
- τη σάρωση ξανά. Αν εξακολουθείτε να μη βλέπετε το επιθυμητό
- δίκτυο, ελέγξτε την κεραία για τυχόν προβλήματα ή μετακινήστε
- τον υπολογιστή πιο κοντά στο σημείο πρόσβασης. Να εκτελείτε νέα
- σάρωση μετά από κάθε αλλαγή.</para>
-
- <figure xml:id="bsdinstall-wireless-accesspoints">
- <title>Επιλογή Ασύρματου Δικτύου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-accesspoints"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετά την επιλογή του ασύρματου δικτύου, θα πρέπει να εισάγετε
- τις πληροφορίες που σχετίζονται με την κρυπτογράφηση. Σε δίκτυα
- <acronym>WPA2</acronym>
- χρειάζεται να δώσετε μόνο ένα κωδικό πρόσβασης (γνωστό ως
- Pre-Shared Key ή <acronym>PSK</acronym>).
- Για λόγους ασφαλείας, οι χαρακτήρες που πληκτρολογείτε στο πεδίο
- εμφανίζονται ως αστερίσκοι.</para>
-
- <figure xml:id="bsdinstall-wireless-wpa2">
- <title>Ρύθμιση WPA2</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-wpa2setup"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετά την επιλογή του ασύρματου δικτύου και την εισαγωγή των
- πληροφοριών σύνδεσης, η εγκατάσταση συνεχίζεται με τη ρύθμιση
- των υπόλοιπων παραμέτρων του δικτύου.</para>
- </sect3>
-
- <sect3 xml:id="bsdinstall-ipv4">
- <title>Ρύθμιση Δικτύου IPv4</title>
-
- <para>Επιλέξτε αν θα χρησιμοποιηθεί δικτύωση IPv4. Πρόκειται
- για το πιο συνηθισμένο είδος σύνδεσης.</para>
-
- <figure xml:id="bsdinstall-configure-net-ipv4">
- <title>Επιλογή Δικτύωσης IPv4</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Υπάρχουν δύο μέθοδοι ρύθμισης του IPv4.
- Μέσω του <emphasis><acronym>DHCP</acronym>
- </emphasis> η ρύθμιση της διεπαφής γίνεται αυτόματα. Αυτή είναι
- και η συνιστώμενη μέθοδος. Η ρύθμιση <emphasis>Static</emphasis>
- απαιτεί χειροκίνητη εισαγωγή πληροφοριών δικτύου.</para>
-
- <note>
- <para>Μη βάλετε τυχαίες ρυθμίσεις δικτύου, καθώς δεν θα
- λειτουργήσουν. Θα πρέπει να λάβετε τις πληροφορίες που
- αναφέρονται στο <xref
- linkend="bsdinstall-collect-network-information"/> από τον
- διαχειριστή ή τον παροχέα του δικτύου σας.</para>
- </note>
-
- <sect4 xml:id="bsdinstall-net-ipv4-dhcp-config">
- <title>Ρύθμιση Δικτύου IPv4 μέσω DHCP</title>
-
- <para>Αν διαθέτετε εξυπηρετητή DHCP, επιλέξτε
- <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να ρυθμίσετε
- αυτόματα την διεπαφή δικτύου.</para>
-
- <figure xml:id="bsdinstall-net-ipv4-dhcp">
- <title>Επιλέξτε Ρύθμιση IPv4 μέσω DHCP</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect4>
-
- <sect4 xml:id="bsdinstall-net-ipv4-static-config">
- <title>Στατική Ρύθμιση Δικτύου IPv4</title>
-
- <para>Η στατική ρύθμιση της διεπαφής δικτύου, απαιτεί να εισάγετε
- κάποιες πληροφορίες σχετικά με το IPv4.</para>
-
- <figure xml:id="bsdinstall-net-ipv4-static">
- <title>Στατική Ρύθμιση IPv4</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4-static"/>
- </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 xml:id="bsdinstall-ipv6">
- <title>Ρύθμιση Δικτύου IPv6</title>
-
- <para>Το IPv6 είναι μια νέα μέθοδος ρύθμισης δικτύου. Αν το δίκτυο
- σας διαθέτει IPv6 και επιθυμείτε να το ρυθμίσετε, πιέστε
- <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να το
- επιλέξετε.</para>
-
- <figure xml:id="bsdinstall-net-ipv6">
- <title>Επιλογή Δικτύωσης IPv6</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv6"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το IPv6 διαθέτει επίσης δύο μεθόδους ρύθμισης. Το
- <emphasis><acronym>SLAAC</acronym></emphasis>, ή
- <emphasis>StateLess Address AutoConfiguration</emphasis>,
- ρυθμίζει αυτόματα τις παραμέτρους του δικτύου σας. Η ρύθμιση
- <emphasis>Static</emphasis> απαιτεί να κάνετε τις αντίστοιχες
- ρυθμίσεις χειροκίνητα.</para>
-
- <sect4 xml:id="bsdinstall-net-ipv6-slaac-config">
- <title>IPv6 Stateless Address Autoconfiguration</title>
-
- <para>Το <acronym>SLAAC</acronym> επιτρέπει σε μια συσκευή ενός
- δικτύου IPv6 να ζητήσει πληροφορίες αυτόματης ρύθμισης από ένα
- τοπικό δρομολογητή. Δείτε το <link
- xlink:href="http://tools.ietf.org/html/rfc4862">RFC4862</link>
- για περισσότερες πληροφορίες.</para>
-
- <figure xml:id="bsdinstall-net-ipv6-slaac">
- <title>Επιλέξτε Ρύθμιση IPv6 SLAAC</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-slaac"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect4>
-
- <sect4 xml:id="bsdinstall-net-ipv6-static-config">
- <title>Στατική Ρύθμιση Δικτύου IPv6</title>
-
- <para>Η στατική ρύθμιση της διεπαφής δικτύου στο IPv6, απαιτεί
- την χειροκίνητη εισαγωγή κάποιων ρυθμίσεων.</para>
-
- <figure xml:id="bsdinstall-net-ipv6-static">
- <title>Στατική Ρύθμιση IPv6</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv6-static"/>
- </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 xml:id="bsdinstall-net-dns">
- <title>Ρύθμιση του <acronym>DNS</acronym></title>
-
- <para>Το
- <emphasis>Domain Name System (Σύστημα Ονομάτων Τομέα)</emphasis> ή
- <emphasis><acronym>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 xml:id="bsdinstall-net-dns-config">
- <title>Ρύθμιση DNS</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-configure-network-ipv4-dns"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect3>
- </sect2>
-
- <sect2 xml:id="bsdinstall-timezone">
- <title>Ρύθμιση της Ζώνης Ώρας</title>
-
- <para>Η ρύθμιση της σωστής ζώνης ώρας στο μηχάνημα σας,
- εξασφαλίζει την αυτόματη αλλαγή της από χειμερινή σε εαρινή και
- το αντίστροφο. Επιτρέπει επίσης τη σωστή λειτουργία όλων των
- υπηρεσιών που σχετίζονται με την τήρηση χρόνου.</para>
-
- <para>Το παράδειγμα μας αναφέρεται σε ένα μηχάνημα που βρίσκεται στην
- Ανατολική ζώνη ώρας των Ηνωμένων Πολιτειών. Η δική σας επιλογή
- θα είναι διαφορετική ανάλογα με τη γεωγραφική σας περιοχή.</para>
-
- <figure xml:id="bsdinstall-local-utc">
- <title>Επιλογή Τοπικού ή UTC Ρολογιού</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-set-clock-local-utc"/>
- </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 xml:id="bsdinstall-timezone-region">
- <title>Επιλέξτε μια Περιοχή</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-timezone-region"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε την σωστή περιοχή χρησιμοποιώντας τα βελάκια και
- πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="bsdinstall-timezone-country">
- <title>Επιλογή Χώρας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-timezone-country"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε τη σωστή χώρα χρησιμοποιώντας τα βελάκια και
- πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="bsdinstall-timezone-zone">
- <title>Επιλογή Ζώνης Ώρας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-timezone-zone"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε τη σωστή ζώνη ώρας χρησιμοποιώντας τα βελάκια και
- πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="bsdinstall-timezone-confirmation">
- <title>Επιβεβαίωση Ζώνης Ώρας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-timezone-confirm"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιβεβαιώστε ότι η συντομογραφία για την επιλεγμένη ζώνη ώρας
- είναι η σωστή. Έπειτα πιέστε <keycap>Enter</keycap> για να
- συνεχίσετε με τις υπόλοιπες ρυθμίσεις.</para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-sysconf">
- <title>Επιλογή Υπηρεσιών που θα Ενεργοποιηθούν</title>
-
- <para>Μπορείτε να επιλέξετε ποιες από τις πρόσθετες υπηρεσίες
- θα ενεργοποιηθούν στην εκκίνηση. Όλες οι παρακάτω υπηρεσίες
- είναι προαιρετικές.</para>
-
- <figure xml:id="bsdinstall-config-serv">
- <title>Επιλογή Πρόσθετων Υπηρεσιών προς Ενεργοποίηση</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-config-services"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <itemizedlist>
- <title>Πρόσθετες Υπηρεσίες</title>
-
- <listitem>
- <para><literal>sshd</literal> - Secure Shell (Ασφαλές Κέλυφος)
- (<acronym>SSH</acronym>) Ο δαίμονας για
- ασφαλή απομακρυσμένη πρόσβαση.</para>
- </listitem>
-
- <listitem>
- <para><literal>moused</literal> - Παρέχει δυνατότητα χρήσης του
- ποντικιού από την κονσόλα του συστήματος.</para>
- </listitem>
-
- <listitem>
- <para><literal>ntpd</literal> - Network Time Protocol, πρωτόκολλο
- για ρύθμιση της ώρας μέσω δικτύου (<acronym>NTP</acronym>).
- Ο δαίμονας χρησιμοποιείται για την αυτόματη ρύθμιση του
- ρολογιού.</para>
- </listitem>
-
- <listitem>
- <para><literal>powerd</literal> - Βοηθητικό πρόγραμμα για έλεγχο
- ισχύος και διαχείριση ενέργειας.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml: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 xml:id="bsdinstall-config-crashdump">
- <title>Ενεργοποίηση Crash Dumps</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-config-crashdump"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
-
- <sect2 xml:id="bsdinstall-addusers">
- <title>Προσθήκη Χρηστών</title>
-
- <para>Η προσθήκη τουλάχιστον ενός χρήστη κατά την εγκατάσταση, σας
- επιτρέπει να χρησιμοποιήσετε το σύστημα χωρίς να εισέλθετε
- ως <systemitem class="username">root</systemitem>. Όταν εισέρχεστε ως
- <systemitem class="username">root</systemitem>, δεν υπάρχουν
- πρακτικά όρια ή κάποιο είδος προστασίας σχετικά με το τι μπορείτε
- να κάνετε. Όταν εισέρχεστε ως κανονικός χρήστης, μπορείτε να
- χειριστείτε το σύστημα σας με περισσότερη ασφάλεια.</para>
-
- <para>Επιλέξτε <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να
- προσθέσετε νέους χρήστες.</para>
-
- <figure xml:id="bsdinstall-add-user1">
- <title>Προσθήκη Λογαριασμών Χρηστών</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-adduser1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Εισάγετε τις πληροφορίες για το χρήστη που θα προστεθεί.</para>
-
- <figure xml:id="bsdinstall-add-user2">
- <title>Εισαγωγή Πληροφοριών Χρήστη</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-adduser2"/>
- </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 user 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 xml:id="bsdinstall-add-user3">
- <title>Έξοδος από τη Διαχείριση Χρηστών και Ομάδων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-adduser3"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αν θέλετε να προσθέσετε περισσότερους χρήστες, απαντήστε στην
- ερώτηση <quote>Add another user?</quote> με <literal>yes</literal>.
- Απαντήστε <literal>no</literal> για να τελειώσετε με την προσθήκη
- χρηστών και να συνεχίσετε την εγκατάσταση.</para>
-
- <para>Για περισσότερες πληροφορίες σχετικά με την προσθήκη και
- διαχείριση χρηστών, δείτε το <xref linkend="users"/>.</para>
- </sect2>
-
- <sect2 xml:id="bsdinstall-final-conf">
- <title>Τελικές Ρυθμίσεις</title>
-
- <para>Μετά το τέλος της εγκατάστασης και των αρχικών ρυθμίσεων, έχετε
- μια τελευταία ευκαιρία να αλλάξετε τις ρυθμίσεις πριν την έξοδο από
- το πρόγραμμα εγκατάστασης.</para>
-
- <figure xml:id="bsdinstall-final-config">
- <title>Τελικές Ρυθμίσεις</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-finalconfiguration"/>
- </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 xml:id="bsdinstall-final-modification-shell">
- <title>Χειροκίνητη Ρύθμιση</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-final-modification-shell"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το <application>bsdinstall</application> θα σας ρωτήσει για
- τυχόν επιπλέον ρυθμίσεις που πρέπει να γίνουν πριν επανεκκινήσετε
- στο νέο σύστημα. Επιλέξτε <guibutton>[&nbsp;Yes&nbsp;]</guibutton>
- για να εκκινήσετε ένα κέλυφος στο νέο σύστημα ή
- <guibutton>[&nbsp;No&nbsp;]</guibutton> για να προχωρήσετε στο
- τελευταίο βήμα της εγκατάστασης.</para>
-
- <figure xml:id="bsdinstall-final-main">
- <title>Ολοκλήρωση της Εγκατάστασης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="bsdinstall/bsdinstall-mainexit"/>
- </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 xml:id="bsdinstall-freebsdboot">
- <title>Εκκίνηση και Τερματισμός του &os;</title>
-
- <sect3 xml:id="bsdinstall-freebsdboot-i386">
- <title>Εκκίνηση στο &os;/&arch.i386;</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> γράψτε το όνομα που
- δημιουργήσατε κατά την εγκατάσταση, στο παράδειγμα μας
- <systemitem class="username">asample</systemitem>. Να αποφεύγετε
- να εισέρχεστε ως
- <systemitem class="username">root</systemitem> όταν δεν είναι
- απαραίτητο.</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 xml:id="bsdinstall-shutdown">
- <title>Τερματισμός του &os;</title>
-
- <para>Ο σωστός τερματισμός του &os; εξασφαλίζει τα δεδομένα και
- το υλικό του υπολογιστή σας από ζημιά. Δεν πρέπει απλώς να
- διακόψετε την τροφοδοσία. Αν ο χρήστης σας είναι μέλος της ομάδας
- <systemitem class="groupname">wheel</systemitem>, μπορείτε να
- γίνετε υπερχρήστης με
- την εντολή <command>su</command> και την εισαγωγή του κωδικού
- του <systemitem class="username">root</systemitem>. Διαφορετικά,
- συνδεθείτε ως
- <systemitem class="username">root</systemitem> και χρησιμοποιήστε
- την εντολή <command>shutdown -p now</command>. Το σύστημα θα
- τερματίσει με το σωστό τρόπο και θα διακοπεί και η παροχή
- ρεύματος.</para>
-
- <para>Μπορείτε να χρησιμοποιήσετε το συνδυασμό πλήκτρων
- <keycombo action="simul">
- <keycap>Ctrl</keycap>
- <keycap>Alt</keycap>
- <keycap>Del</keycap>
- </keycombo>
- για να επανεκκινήσετε το σύστημα, αλλά αυτό δεν συνίσταται κατά τη
- διάρκεια της κανονικής λειτουργίας.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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>Ελέγξτε τις <link
- xlink:href="http://www.FreeBSD.org/releases/index.html">Σημειώσεις
- Υλικού</link> για την έκδοση του &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>
-
- <sect1 xml:id="using-live-cd">
- <title>Χρησιμοποιώντας τη Λειτουργία Live CD</title>
-
- <para>Η λειτουργία live CD του &os; διατίθεται στο ίδιο CD με το
- βασικό πρόγραμμα εγκατάστασης. Είναι χρήσιμη για όσους ακόμα
- αναρρωτιούνται αν το &os; είναι το κατάλληλο λειτουργικό για
- αυτούς και θέλουν να δοκιμάσουν κάποια από τα χαρακτηριστικά του
- πριν το εγκαταστήσουν.</para>
-
- <note>
- <para>Κατά τη χρήση του live CD να έχετε υπόψη σας τα
- παρακάτω:</para>
-
- <itemizedlist>
- <listitem>
- <para>Για να αποκτήσετε πρόσβαση στο σύστημα θα πρέπει να
- περάσετε από διαδικασία εισόδου. Το όνομα χρήστη
- είναι <systemitem class="username">root</systemitem> και
- ο κωδικός είναι κενός.</para>
- </listitem>
-
- <listitem>
- <para>Καθώς το σύστημα εκτελείται απευθείας από το CD, η
- απόδοση του θα είναι σημαντικά χαμηλότερη σε σχέση με
- ένα σύστημα εγκατεστημένο σε σκληρό δίσκο.</para>
- </listitem>
-
- <listitem>
- <para>Το live CD παρέχει μόνο γραμμή εντολών και όχι
- γραφικό περιβάλλον.</para>
- </listitem>
- </itemizedlist>
- </note>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/chapters.ent b/el_GR.ISO8859-7/books/handbook/chapters.ent
deleted file mode 100644
index ea04851198..0000000000
--- a/el_GR.ISO8859-7/books/handbook/chapters.ent
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Ορισμός των entities για κάθε κεφάλαιο του Εγχειριδίου του FreeBSD.
-
- Κάθε entity ονομάζεται chap.foo, όπου foo είναι η τιμή του id attribute
- που έχει το αντίστοιχο κεφάλαιο (συνήθως αυτό είναι ίδιο και με το όνομα
- του καταλόγου στον οποίο είναι αποθηκευμένο το κεφάλαιο σε SGML μορφή).
-
- Τα κεφάλαια εδώ είναι καλό να έχουν την ίδια σειρά με την οποία
- εμφανίζονται στο τελικό βιβλίο.
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/chapters.ent
- %SRCID% 43126
-
--->
-
-<!ENTITY chap.preface SYSTEM "preface/preface.xml">
-<!ENTITY % pgpkeys SYSTEM "../../../share/pgpkeys/pgpkeys.ent"> %pgpkeys;
-
-<!-- Part One -->
- <!ENTITY chap.introduction SYSTEM "introduction/chapter.xml">
- <!ENTITY chap.install SYSTEM "install/chapter.xml">
- <!ENTITY chap.bsdinstall SYSTEM "bsdinstall/chapter.xml">
- <!ENTITY chap.basics SYSTEM "basics/chapter.xml">
- <!ENTITY chap.ports SYSTEM "ports/chapter.xml">
- <!ENTITY chap.x11 SYSTEM "x11/chapter.xml">
-
-<!-- Part Two -->
- <!ENTITY chap.desktop SYSTEM "desktop/chapter.xml">
- <!ENTITY chap.multimedia SYSTEM "multimedia/chapter.xml">
- <!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.xml">
- <!ENTITY chap.printing SYSTEM "printing/chapter.xml">
- <!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.xml">
-
-<!-- Part Three -->
- <!ENTITY chap.config SYSTEM "config/chapter.xml">
- <!ENTITY chap.boot SYSTEM "boot/chapter.xml">
-<!-- users chapter stays in the Greek build until merged with basics -->
- <!ENTITY chap.users SYSTEM "users/chapter.xml">
- <!ENTITY chap.security SYSTEM "security/chapter.xml">
- <!ENTITY chap.jails SYSTEM "jails/chapter.xml">
- <!ENTITY chap.mac SYSTEM "mac/chapter.xml">
- <!ENTITY chap.audit SYSTEM "audit/chapter.xml">
- <!ENTITY chap.disks SYSTEM "disks/chapter.xml">
- <!ENTITY chap.geom SYSTEM "geom/chapter.xml">
- <!ENTITY chap.filesystems SYSTEM "filesystems/chapter.xml">
- <!ENTITY chap.virtualization SYSTEM "virtualization/chapter.xml">
- <!ENTITY chap.l10n SYSTEM "l10n/chapter.xml">
- <!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.xml">
- <!ENTITY chap.dtrace SYSTEM "dtrace/chapter.xml">
-
-<!-- Part Four -->
- <!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.xml">
- <!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.xml">
- <!ENTITY chap.mail SYSTEM "mail/chapter.xml">
- <!ENTITY chap.network-servers SYSTEM "network-servers/chapter.xml">
- <!ENTITY chap.firewalls SYSTEM "firewalls/chapter.xml">
- <!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.xml">
-
-<!-- Part Five (appendices) -->
- <!ENTITY chap.mirrors SYSTEM "mirrors/chapter.xml">
- <!ENTITY chap.mirrors.lastmod.inc SYSTEM "mirrors.lastmod.inc">
- <!ENTITY chap.mirrors.ftp.index.inc SYSTEM "mirrors.xml.ftp.index.inc">
- <!ENTITY chap.mirrors.ftp.inc SYSTEM "mirrors.xml.ftp.inc">
- <!ENTITY chap.mirrors.cvsup.index.inc SYSTEM "mirrors.xml.cvsup.index.inc">
- <!ENTITY chap.mirrors.cvsup.inc SYSTEM "mirrors.xml.cvsup.inc">
- <!ENTITY chap.bibliography SYSTEM "bibliography/chapter.xml">
- <!ENTITY chap.eresources SYSTEM "eresources/chapter.xml">
- <!ENTITY chap.eresources.www.index.inc SYSTEM "eresources.xml.www.index.inc">
- <!ENTITY chap.eresources.www.inc SYSTEM "eresources.xml.www.inc">
- <!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.xml">
- <!ENTITY chap.freebsd-glossary SYSTEM "../../share/xml/glossary.ent">
- <!ENTITY chap.index "<index xmlns='http://docbook.org/ns/docbook'/>">
-
-<!ENTITY chap.colophon SYSTEM "colophon.xml">
diff --git a/el_GR.ISO8859-7/books/handbook/colophon.xml b/el_GR.ISO8859-7/books/handbook/colophon.xml
deleted file mode 100644
index e516ed8905..0000000000
--- a/el_GR.ISO8859-7/books/handbook/colophon.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Περίληψη Βιβλίου
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/colophon.xml
- %SRCID% 38826
-
--->
-<colophon xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="colophon">
- <para>Αυτό το βιβλίο είναι το αποτέλεσμα της ομαδικής εργασίας εκατοντάδων
- εθελοντών της <quote>Ομάδας Τεκμηρίωσης του &os;</quote>. Αυτό το
- κείμενο γράφτηκε σε μορφή SGML, σύμφωνα με το DocBook DTD και έχει
- μορφοποιηθεί από την SGML σε πολλές διαφορετικές μορφές παρουσίασης
- χρησιμοποιώντας την εφαρμογή <application>Jade</application>, μια μηχανή
- DSSSL ανοιχτού κώδικα. Χρησιμοποιήθηκαν τα DSSSL stylesheets του Norm Walsh με ένα
- επιπλέον επίπεδο τροποποίησης για να δώσουν τις οδηγίες παρουσίασης στην
- <application>Jade</application>. Η έντυπη μορφή αυτού του κειμένου δεν θα
- υπήρχε χωρίς την γλώσσα στοιχειοθεσίας &tex;
- του Donald Knuth, το <application>LaTeX</application> του Leslie Lamport,
- ή το macro package <application>JadeTeX</application> του Sebastian
- Rahtz.</para>
-</colophon>
diff --git a/el_GR.ISO8859-7/books/handbook/config/chapter.xml b/el_GR.ISO8859-7/books/handbook/config/chapter.xml
deleted file mode 100644
index a8e1c72b81..0000000000
--- a/el_GR.ISO8859-7/books/handbook/config/chapter.xml
+++ /dev/null
@@ -1,3221 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ρύθμιση και Βελτιστοποίηση
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/config/chapter.xml
- %SRCID% 1.229
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="config-tuning">
- <info><title>Ρύθμιση και Βελτιστοποίηση</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Γράφτηκε από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Mike</firstname><surname>Smith</surname></personname><contrib>Βασίστηκε σε tutorial γραμμένο από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Matt</firstname><surname>Dillon</surname></personname><contrib>Βασισμένο επίσης στο tuning(7) που γράφηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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>/usr/local/etc/rc.d</filename>.</para>
- </listitem>
- <listitem>
- <para>Πως να ρυθμίσετε και να δοκιμάσετε μια κάρτα δικτύου.</para>
- </listitem>
- <listitem>
- <para>Πως να ρυθμίσετε virtual hosts στις δικτυακές σας συσκευές.</para>
- </listitem>
- <listitem>
- <para>Πως να χρησιμοποιήσετε τα διάφορα αρχεία ρυθμίσεων στον κατάλογο
- <filename>/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 xml:id="configtuning-initial">
- <title>Αρχική Ρύθμιση</title>
-
- <sect2>
- <title>Διάταξη Κατατμήσεων</title>
-
- <indexterm><primary>partition layout</primary></indexterm>
- <indexterm>
- <primary><filename>/etc</filename></primary>
- </indexterm>
- <indexterm>
- <primary><filename>/var</filename></primary>
- </indexterm>
- <indexterm>
- <primary><filename>/usr</filename></primary>
- </indexterm>
-
- <sect3>
- <title>Βασικές Κατατμήσεις</title>
-
- <para>Όταν δημιουργείτε συστήματα αρχείων με το &man.bsdlabel.8; ή το
- &man.sysinstall.8;, θυμηθείτε ότι οι σκληροί δίσκοι μεταφέρουν
- δεδομένα γρηγορότερα απο τα εξωτερικά μέροι τους στα εσωτερικά.
- Έτσι μικρότερα και περισσότερο προσβάσιμα συστήματα αρχείων πρέπει
- να είναι πλησιέστερα στο εξωτερικό του δίσκου, ενώ μεγαλύτερες
- κατατμήσεις όπως το <filename>/usr</filename> πρέπει να
- τοποθετούνται πιο κοντά στο εσωτερικό του δίσκου. Είναι καλή ιδέα
- να δημιουργείτε κατατμήσεις με παρόμοια σειρά με αυτήν: root,
- swap, <filename>/var</filename>, <filename>/usr</filename>.</para>
-
- <para>Το μέγεθος του <filename>/var</filename> αντανακλά την
- επιδιωκούμενη χρήση του μηχανήματος. Το <filename>/var</filename>
- χρησιμοποιείτε για την αποθήκευση των γραμματοκιβωτίων, των αρχείων
- καταγραφής και του spooler του εκτυπωτή. Τα γραμματοκιβώτια και τα
- αρχεία καταγραφής μπορούν να μεγαλώσουν σε απροσδόκητα μεγέθη
- ανάλογα με τον αριθμό των χρηστών του συστήματος και το χρονικό
- διάστημα που κρατούνται τα αρχεία καταγραφής. Σπάνια χρειάζεται
- το <filename>/var/tmp</filename> να έχει πάνω από ένα gigabyte χώρο,
- αλλά καλό είναι να έχετε κατά νου ότι πρέπει να είναι αρκετά μεγάλο
- για να κρατάει τα πακέτα που θέλετε να εγκαταστήσετε.</para>
-
- <para>Η κατάτμηση <filename>/usr</filename> περιέχει τα περισσότερα
- αρχεία που απαιτούνται για την υποστήριξη του συστήματος, τη συλλογή
- των &man.ports.7; (προτείνεται) και τον πηγαίο κώδικα (προαιρετικό).
- Και τα δύο αυτά είναι προαιρετικά κατα την εγκατάσταση. Τουλάχιστον
- 2 gigabytes προτείνονται για αυτή την κατάτμηση.</para>
-
- <para>Όταν επιλέγετε μέγεθος για τις κατατμήσεις, να έχετε υπόψιν σας
- τις απαιτήσεις σε χώρο. Μπορεί να είναι λίγο πρόβλημα το να μείνετε
- χωρίς χώρο σε μια κατάτμηση ενώ χρησιμοποιείτε ελάχιστα μια
- άλλη.</para>
-
- <note>
- <para>Μερικές φορές η επιλογή <literal>Auto-defaults</literal> του
- κατατμητή του &man.sysinstall.8; μπορεί να επιλέξει πολύ μικρό
- μέγεθος για τις κατατμήσεις <filename>/var</filename>
- και <filename>/</filename>. Προσπαθείστε να επιλέξετε έξυπνα και
- γενναιόδωρα μεγέθη για τις κατατμήσεις σας.</para></note>
- </sect3>
-
- <sect3 xml: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>/usr</filename> κατατμήσεις είναι κυρίως για ανάγνωση,
- χωρίς πολλές εγγραφές. Αντίθετα, γίνονται πολλές αναγνώσεις και
- εγγραφές στις <filename>/var</filename> και
- <filename>/var/tmp</filename>.</para>
-
- <para>Κάνοντας σωστή κατάτμηση σε ένα σύστημα, ο κατακερματισμός που
- συμβαίνει σε μικρότερες και περισσότερο εγγράψιμες κατατμήσεις δεν
- θα διαρρεύσει στις κατατμήσεις που διαβάζονται πιο συχνά από ότι
- γράφονται. Κρατώντας τις περισσότερο εγγράψιμες κατατμήσεις πιο
- κοντά στην άκρη του δίσκου, θα αυξηθεί η I/O απόδοση στις
- κατατμήσεις όπου και χρειάζεται πιο συχνά. Τώρα ενώ η απόδοση I/O
- χρειάζεται στις μεγαλύτερες κατατμήσεις, αλλάζοντας αυτές πιο κοντά
- στην άκρη του δίσκου δεν θα οδηγήσει σε σημαντική αύξηση της
- απόδοσης όσο το να μετακινήσετε την <filename>/var</filename> στην
- άκρη. Τέλος, υπάρχει και θέμα ασφάλειας. Μία μικρή, προσεγμένη
- root κατάτμηση η οποία είναι διαβάζεται πιο συχνά από ότι γράφεται
- έχει μεγαλύτερη πιθανότητα να επιζήσει ενός άσχημου
- χτυπήματος.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml: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>/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 xml:id="configtuning-appconfig">
- <title>Ρύθμιση Εφαρμογών</title>
-
- <para>Τυπικά, οι εγκατεστημένες εφαρμογές έχουν τα δικά τους αρχεία
- ρυθμίσεων, με το δικό τους τρόπο σύνταξης, κτλπ. Είναι σημαντικό αυτά
- τα αρχεία να κρατούνται ξεχωριστά απο το βασικό σύστημα, έτσι ώστε να
- είναι εύκολα εντοπίσιμα και διαχειρίσιμα απο τα εργαλεία διαχείρισης
- πακέτων.</para>
-
- <indexterm><primary>/usr/local/etc</primary></indexterm>
-
- <para>Τυπικά, αυτά τα αρχεία είναι εγκατεστημένα στο
- <filename>/usr/local/etc</filename>. Σε αυτή την περίπτωση όταν μία
- εφαρμογή έχει μεγάλο αριθμό αρχείων ρυθμίσεων, ένας υποκατάλογος
- δημιουργείται για να τα αποθηκεύσει.</para>
-
- <para>Κανονικά, όταν ένα port ή ένα package εγκαθιστάτε, παραδείγματα
- αρχείων ρυθμίσεων εγκαθιστάνται επίσης. Αυτά είναι συνήθως αναγνωρίσιμα
- απο την <filename>.default</filename> κατάληξη τους. Αν δεν υπάρχουν
- αρχεία ρυθμίσεων για την εφαρμογή, τότε θα δημιουργηθούν κάνοντας
- αντιγραφή τα <filename>.default</filename> αρχεία.</para>
-
- <para>Για παράδειγμα, έχετε υπόψη σας τα περιεχόμενα του
- καταλόγου <filename>/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 xml:id="configtuning-starting-services">
- <info><title>Eκκινώντας Υπηρεσίες</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>services</primary></indexterm>
-
- <para>Πολλοί χρήστες επιλέγουν να εγκαταστήσουν λογισμικό απο τρίτους
- κατασκευαστές στο &os; απο την συλλογή των Ports. Σε πολλές απο αυτές
- τις περιπτώσεις μπορεί να είναι απαραίτητο να ρυθμίσουν το λογισμικό με
- τέτοιο τρόπο ώστε να μπορεί να επιτραπεί η εκκίνηση του κατα την
- εκκίνηση του συστήματος. Υπηρεσίες, όπως
- το <package>mail/postfix</package> ή
- το <package>www/apache13</package> είναι μόνο δύο απο
- τα πολλά πακέτα λογισμικού που μπορεί να χρειάζονται να εκκινηθούν κατά
- την εκκίνηση του συστήματος. Το μέρος αυτό θα εξηγήσει τις διαθέσιμες
- διαδικασίες για την εκκίνηση λογισμικού προερχόμενο απο τρίτους
- κατασκευαστές.</para>
-
- <para>Στο &os;, οι περισσότερες περιεχόμενες υπηρεσίες, όπως το
- &man.cron.8;, είναι εκκινήσιμες μέσα από τα σενάρια εκκίνησης του
- συστήματος. Τα σενάρια αυτά μπορεί να διαφέρουν ανάλογα το &os; ή την
- έκδοση του κατασκευαστή; ωστόσο, η πιο σημαντική πτυχή που πρέπει να
- εξεταστεί είναι ότι οι ρυθμίσεις εκκίνησης τους μπορούν να χειριστούν
- μέσα απο ένα απλό σενάριο εκκίνησης.</para>
-
- <para>Πριν την έλευση του <filename>rc.d</filename>, οι εφαρμογές
- μπορούσαν να τοποθετήσουν ένα απλό σενάριο εκκίνησης μέσα στον
- κατάλογο <filename>/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;&amp;2
- exit 64
- ;;
-esac
-
-exit 0</programlisting>
-
- <para>Το σενάριο αυτό παρέχει μια <literal>stop</literal> και μια
- <literal>start</literal> επιλογή για
- την εφαρμογή όπου στο παράδειγμα εδώ αναφέρεται σαν
- <literal>utility</literal>.</para>
-
- <para>Μπορεί να εκκινηθεί χειρωνακτικά κάνοντας:</para>
-
- <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/utility.sh 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 xml:id="configtuning-cron">
- <info><title>Ρυθμίζοντας Το Πρόγραμμα <command>cron</command></title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm><primary>cron</primary>
- <secondary>configuration</secondary></indexterm>
-
- <para>Ένα απο τα πιο χρήσιμα βοηθητικά προγράμματα στο &os; είναι το
- &man.cron.8;. Το πρόγραμμα <command>cron</command> τρέχει στο
- παρασκήνιο και συνεχώς ελέγχει το
- αρχείο <filename>/etc/crontab</filename>. Το <command>cron</command>
- ελέγχει επίσης τον κατάλογο <filename>/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 των χρηστών επιτρέπουν σε μεμονωμένους χρήστες να
- προγραμματίσουν εργρασίες χωρίς την ανάγκη <systemitem class="username">root</systemitem>
- δικαιωμάτον. Οι εντολές μέσα στο crontab ενός χρήστη τρέχουν με τα
- δικαιώματα του χρήστη του οποίου ανήκει το crontab.</para>
-
- <para>Ο χρήστης <systemitem class="username">root</systemitem> μπορεί να έχει ένα crontab
- χρήστη ακριβώς όπως κάθε χρήστης. Αυτό είναι διαφορετικό απο
- το <filename>/etc/crontab</filename> (το crontab του συστήματος). Λόγο
- του crontab του συστήματος, δεν υπάρχει συνήθως καμία ανάγκη για την
- δημιουργία ενός ξεχωριστού crontab για τον
- χρήστη <systemitem class="username">root</systemitem>.</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 xml:id="co-comments"/>
-#
-SHELL=/bin/sh
-PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co xml:id="co-env"/>
-HOME=/var/log
-#
-#
-#minute hour mday month wday who command <co xml:id="co-field-descr"/>
-#
-#
-*/5 * * * * root /usr/libexec/atrun <co xml: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>
- επικαλείται απο τον χρήστη <systemitem class="username">root</systemitem> κάθε πέντε
- λεπτά ανεξάρτητα απο την ημέρα και τον μήνα. Για περισσότερες
- πληροφορίες σχετικά με την εντολή <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 xml:id="configtuning-installcrontab">
- <title>Εγκαθιστώντας Ένα Crontab</title>
-
- <important>
- <para>Δεν θα πρέπει να χρησιμοποιήσετε την διαδικασία που περιγράφεται
- εδώ για την διόρθωση/εγκατάσταση του crontab του συστήματος. Απλά
- χρησιμοποιήστε τον αγαπημένο σας κειμενογράφο:
- το <command>cron</command> θα εντοπίσει ότι το αρχείο έχει
- τροποποιηθεί και θα αρχίσει άμεσα να χρησιμοποιεί την ανανεωμένη
- έκδοση του.
- Δείτε <link xlink:href="&url.books.faq;/admin.html#ROOT-NOT-FOUND-CRON-ERRORS">αυτή
- την εγγραφή του FAQ </link> για περισσότερες πληροφορίες.</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 xml:id="configtuning-rcd">
- <info><title>Χρησιμοποιώντας Το Σύστημα rc Στο &os;</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Το 2002 το &os; ενσωμάτωσε το σύστημα <filename>rc.d</filename> του
- NetBSD για την εκκίνηση του συστήματος. Οι χρήστες θα πρέπει να έχουν
- αντιληφθεί τα αρχεία που βρίσκονται στον
- κατάλογο <filename>/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>, και όχι η κονσολά του
- χρήστη <systemitem class="username">root</systemitem>.</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> ή για την βελτίωση των ήδη
- υπάρχοντων, θα βρείτε <link xlink:href="&url.articles.rc-scripting;">τον
- σύνδεσμο αυτόν</link> αρκετά χρήσιμο.</para>
- </sect1>
-
- <sect1 xml:id="config-network-setup">
- <info><title>Ρυθμίζοντας Τις Κάρτες Δικτύου</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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/arch/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/arch/conf/NOTES</filename>
- και την σελίδα βοηθείας του οδηγού για να μάθετε τι πρέπει να
- προσθέσετε στο αρχείο ρυθμίσεων του πυρήνα. Για περισσότερες
- πληροφορίες για το πως να μεταγλωττίσετε τον πυρήνα, παρακαλώ
- διαβάστε το <xref linkend="kernelconfig"/>. Αν η κάρτα σας
- εντοπιστεί κατα την εκκίνηση απο τον πυρήνα
- (<filename>GENERIC</filename>) δεν χρειάζετε να μεταγλώττισετε
- έναν νέο πυρήνα.</para>
- </listitem>
- </itemizedlist>
-
- <sect3 xml: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.xml -->
-
- <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>Το επόμενο βήμα είναι να μεταγλωττίσετε τον δυαδικό οδηγό μέσα
- σε ένα φορτώσιμο άρθρωμα του πυρήνα. Για να το επιτύχετε αυτό, θα
- πρέπει σαν <systemitem class="username">root</systemitem>, να χρησιμοποιήσετε το
- &man.ndisgen.8;:</para>
-
- <screen>&prompt.root; <userinput>ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS</userinput></screen>
-
- <para>Το βοηθητικό πρόγραμμα &man.ndisgen.8; είναι διαδραστικό και θα
- σας ενημερώσει για οποιαδήποτε επιπλέον πληροφορία μπορεί να
- χρειαστεί; θα παράγει ένα άρθρωμα του πυρήνα στον τρέχωντα κατάλογο
- και μπορεί να φορτωθεί ως εξής:</para>
-
- <screen>&prompt.root; <userinput>kldload ./W32DRIVER.ko</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>Απο εδώ και πέρα μπορείτε να χειριστείτε την
- συσκευή <filename>ndis0</filename> σαν μια οποιαδήποτε κάρτα
- δικτύου (π.χ., <filename>dc0</filename>).</para>
-
- <para>Μπορείτε να ρυθμίσετε το σύστημα να φορτώνει τα NDIS αρθρώματα
- κατα την εκκίνηση με τον ίδιο τρόπο με τα όπως με οποιαδήποτε άλλα
- αρθρώματα. Πρώτα, αντιγράψτε το παραχθείσα
- άρθρωμα, <filename>W32DRIVER.ko</filename>, στον
- κατάλογο <filename>/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><filename>dc0</filename>: Η πρώτη Ethernet κάρτα
- δικτύου</para>
- </listitem>
-
- <listitem>
- <para><filename>dc1</filename>: Η δεύτερη Ethernet κάρτα
- δικτύου</para>
- </listitem>
-
- <listitem>
- <para><filename>lp0</filename>: Η παράλληλη πόρτα
- </para>
- </listitem>
-
- <listitem>
- <para><filename>lo0</filename>: Η συσκευή loopback</para>
- </listitem>
-
- <listitem>
- <para><filename>tun0</filename>: Η συσκευή tunnel χρησιμοποιούμενη
- απο το πρόγραμμα <application>ppp</application></para>
- </listitem>
- </itemizedlist>
-
- <para>Το &os; χρησιμοποιεί τα ονόματα των οδηγών με την σειρά κατα την
- οποία εντοπίστηκαν οι αντίστοιχες κάρτες κατα την εκκίνηση. Για
- παράδειγμα η συσκευή <filename>sis2</filename> θα είναι η τρίτη
- κάρτα δικτύου που χρησιμοποιεί τον οδηγό &man.sis.4;.</para>
-
- <para>Στο παράδειγμα αυτό, η συσκευή <filename>dc0</filename> είναι
- πάνω και τρέχει. Οι λέξεις κλειδία είναι:</para>
-
- <orderedlist>
- <listitem>
- <para><literal>UP</literal> σημαίνει ότι η κάρτα είναι ρυθμισμένη
- και έτοιμη.</para>
- </listitem>
-
- <listitem>
- <para>Η κάρτα έχει μία Internet διεύθυνση (<literal>inet</literal>)
- ρυθμισμένη (σε αυτή την
- περίπτωση <systemitem class="ipaddress">192.168.1.3</systemitem>).</para>
- </listitem>
-
- <listitem>
- <para>Έχει μία έγκυρη μάσκα υποδικτύου
- (<literal>netmask</literal>; <systemitem class="netmask">0xffffff00</systemitem>
- είναι το ίδιο με
- το <systemitem class="netmask">255.255.255.0</systemitem>).</para>
- </listitem>
-
- <listitem>
- <para>Έχει μία έγκυρη broadcast διεύθυνση (σε αυτή την
- περίπτωση, <systemitem class="ipaddress">192.168.1.255</systemitem>).</para>
- </listitem>
-
- <listitem>
- <para>Η διεύθυνση MAC της κάρτας (<literal>ether</literal>)
- είναι <systemitem class="etheraddress">00:a0:cc:da:da:da</systemitem></para>
- </listitem>
-
- <listitem>
- <para>Η επιλογή του φυσικού μέσου είναι σε κατάσταση autoselection
- (<literal>media: Ethernet autoselect (100baseTX
- &lt;full-duplex&gt;)</literal>). Παρατηρούμε ότι
- η <filename>dc1</filename> έχει ρυθμιστεί να τρέχει
- σαν <literal>10baseT/UTP</literal> μέσο. Για περισσότερες
- πληροφορίες για τους τύπους των μέσων ενός οδηγού, παρακαλώ
- ανατρέξτε στην σελίδα βοηθείας.</para>
- </listitem>
-
- <listitem>
- <para>Η κατάσταση της σύνδεσης (<literal>status</literal>)
- είναι <literal>active</literal>, δηλ. έχει εντοπιστεί σήμα
- μεταφοράς. Στην <filename>dc1</filename>,
- παρατηρούμε <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>Για να ρυθμίσετε την κάρτα σας, θα χρειαστείτε
- προνόμια <systemitem class="username">root</systemitem>. Η ρύθμιση της κάρτας δικτύου
- μπορεί να γίνει απο την γραμμή εντολών με το &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>Θα πρέπει να αντικαταστήσετε
- το <filename>dc0</filename>, <filename>dc1</filename>, και
- ούτω κάθε εξής, με τις σωστές συσκευές των καρτών σας, και τις σωστές
- διευθύνσεις. Θα πρέπει να διαβάσετε την σελίδα βοηθείας του οδηγού
- και του &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>Μπορείτε να χρησιμοποιήσετε και το όνομα το μηχανήματος αντί της
- διεύθυνσης <systemitem class="ipaddress">192.168.1.2</systemitem> αν έχετε
- ρυθμίσει το αρχείο <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 xml: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>Μία εγγραφή εικονικής διεύθυνσης για την κάρτα
- δικτύου <filename>fxp0</filename> μοιάζει ως εξής:</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 (εκφρασμένη είτε
- σαν <systemitem class="netmask">255.255.255.255</systemitem> είτε
- σαν <systemitem class="netmask">0xffffffff</systemitem>).</para>
-
- <para>Για παράδειγμα, εξετάστε την περίπτωση όπου η κάρτα
- δικτύου <filename>fxp0</filename> είναι συνδεδεμένη σε δύο δίκτυα,
- το δίκτυο <systemitem class="ipaddress">10.1.1.0</systemitem> με μάσκα
- δικτύου <systemitem class="netmask">255.255.255.0</systemitem> και το
- δίκτυο <systemitem class="ipaddress">202.0.75.16</systemitem> με μάσκα
- δικτύου <systemitem class="netmask">255.255.255.240</systemitem>. Θέλουμε το
- σύστημα να πάρει τις διευθύνσεις
- από <systemitem class="ipaddress">10.1.1.1</systemitem>
- μέχρι <systemitem class="ipaddress">10.1.1.5</systemitem> και
- τις <systemitem class="ipaddress">202.0.75.17</systemitem>
- μέχρι <systemitem class="ipaddress">202.0.75.20</systemitem>. Όπως σημειώθηκε
- παραπάνω, μόνο η πρώτες διευθύνσεις (στην περίπτωση αυτή,
- η <systemitem class="ipaddress">10.0.1.1</systemitem> και
- η <systemitem class="ipaddress">202.0.75.17</systemitem>) πρέπει να έχουν
- πραγματικές μάσκες δικτύου. Όλες οι υπόλοιπες, από
- (<systemitem class="ipaddress">10.1.1.2</systemitem>
- μέχρι <systemitem class="ipaddress">10.1.1.5</systemitem>
- και <systemitem class="ipaddress">202.0.75.18</systemitem>
- μέχρι <systemitem class="ipaddress">202.0.75.20</systemitem>) πρέπει να ρυθμιστούν
- με μάσκα δικτύου <systemitem class="netmask">255.255.255.255</systemitem>.</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 xml:id="configtuning-configfiles">
- <title>Αρχεία Ρυθμίσεων</title>
-
- <sect2>
- <title>Ο κατάλογος <filename>/etc</filename></title>
-
- <para>Τα αρχεία ρυθμίσεων αποθηκεύονται σε καταλόγους. Μερικοί απο
- αυτούς είναι:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <colspec colwidth="1*"/>
- <colspec colwidth="2*"/>
-
- <tbody>
- <row>
- <entry><filename>/etc</filename></entry>
- <entry>Γενικές ρυθμίσεις του συστήματος, data here is
- system-specific.</entry>
- </row>
- <row>
- <entry><filename>/etc/defaults</filename></entry>
- <entry>Default versions of system configuration files.</entry>
- </row>
- <row>
- <entry><filename>/etc/mail</filename></entry>
- <entry>Extra &man.sendmail.8; configuration, other
- MTA configuration files.
- </entry>
- </row>
- <row>
- <entry><filename>/etc/ppp</filename></entry>
- <entry>Configuration for both user- and kernel-ppp programs.
- </entry>
- </row>
- <row>
- <entry><filename>/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>/usr/local/etc</filename></entry>
- <entry>Configuration files for installed applications.
- May contain per-application subdirectories.</entry>
- </row>
- <row>
- <entry><filename>/usr/local/etc/rc.d</filename></entry>
- <entry>Start/stop scripts for installed applications.</entry>
- </row>
- <row>
- <entry><filename>/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 xml: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 xml: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 xml:id="sysctl-readonly">
- <info><title>&man.sysctl.8; Read-only</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 xml: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 xml: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 xml:id="configtuning-kernel-limits">
- <title>Tuning Kernel Limits</title>
-
- <indexterm>
- <primary>tuning</primary>
- <secondary>kernel limits</secondary>
- </indexterm>
-
- <sect2 xml:id="file-process-limits">
- <title>File/Process Limits</title>
-
- <sect3 xml: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
- <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>), 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 xml: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 xml: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 xml: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 xml: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 xml: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 xml:id="acpi-overview">
- <info><title>Power and Resource Management</title>
- <authorgroup>
- <author><personname><firstname>Hiten</firstname><surname>Pandya</surname></personname><contrib>Written by </contrib></author>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <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 xml: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 xml: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 xml: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 xml:id="ACPI-debug">
- <info><title>Using and Debugging &os; <acronym>ACPI</acronym></title>
- <authorgroup>
- <author><personname><firstname>Nate</firstname><surname>Lawson</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Peter</firstname><surname>Schultz</surname></personname><contrib>With contributions from </contrib></author>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <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 xml: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
- <link xlink:href="mailto:freebsd-acpi@FreeBSD.org">
- freebsd-acpi@FreeBSD.org</link>:</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; name-system.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 xml: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>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>src/sys/dev/acpica</filename>.</para>
- </sect2>
-
- <sect2 xml: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 xml: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 xml: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>/boot</filename> directory.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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>/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 xml: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
- <uri xlink:href="http://lists.freebsd.org/pipermail/freebsd-acpi/">http://lists.freebsd.org/pipermail/freebsd-acpi/</uri></para>
- </listitem>
-
- <listitem>
- <para>The old <acronym>ACPI</acronym> Mailing List Archives
- <uri xlink:href="http://home.jp.FreeBSD.org/mail-list/acpi-jp/">http://home.jp.FreeBSD.org/mail-list/acpi-jp/</uri></para>
- </listitem>
-
- <listitem>
- <para>The <acronym>ACPI</acronym> 2.0 Specification
- <uri xlink:href="http://acpi.info/spec.htm">http://acpi.info/spec.htm</uri></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><link xlink:href="http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt">
- <acronym>DSDT</acronym> debugging resource</link>.
- (Uses Compaq as an example but generally useful.)</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml
deleted file mode 100644
index a1f84e6293..0000000000
--- a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.xml
+++ /dev/null
@@ -1,3381 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ενημέρωση και Αναβάθμιση του FreeBSD
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
- %SRCID% 38879
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="updating-upgrading">
- <info><title>Ενημέρωση και Αναβάθμιση του &os;</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Αναδομήθηκε, αναδιοργανώθηκε, και τμήματα του ανανεώθηκαν
- από τον </contrib></author>
- <!-- Mar 2000 -->
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Jordan</firstname><surname>Hubbard</surname></personname><contrib>Αρχική συνεισφορά από τους </contrib></author>
-
- <author><personname><firstname>Poul-Henning</firstname><surname>Kamp</surname></personname></author>
-
- <author><personname><firstname>John</firstname><surname>Polstra</surname></personname></author>
-
- <author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 όπως το
- <package>net/cvsup</package> (αν δεν θέλετε να
- εγκαταστήσετε γραφικό πρόγραμμα <command>cvsup</command>, μπορείτε
- να εγκαταστήσετε το port <package>net/cvsup-without-gui</package>).
- Μπορείτε να αντικαταστήσετε αυτή την εντολή με την &man.csup.1;
- η οποία ανήκει στο βασικό σύστημα.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="updating-upgrading-freebsdupdate">
- <info><title>Ενημερώνοντας το &os;</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Colin</firstname><surname>Percival</surname></personname><contrib>Βασίστηκε σε σημειώσεις που παρείχε ο </contrib></author>
- </authorgroup>
- </info>
-
-
- <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>Δυαδικές διορθώσεις λαθών και ασφάλειας, διατίθενται για όλες
- τις αρχιτεκτονικές και εκδόσεις που υποστηρίζονται από την ομάδα
- ασφάλειας. Πριν προχωρήσετε στην αναβάθμιση σε μια νέα έκδοση,
- θα πρέπει να διαβάσετε τις σχετικές με αυτήν ανακοινώσεις, καθώς
- μπορεί να περιέχουν σημαντικές πληροφορίες. Μπορείτε να δείτε τις
- ανακοινώσεις εκδόσεων στην παρακάτω τοποθεσία:
- <uri xlink:href="http://www.FreeBSD.org/releases/">http://www.FreeBSD.org/releases/</uri>.</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 xml: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>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>/bin</filename> ή
- <filename>/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>/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 xml: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
- στο χρήστη <systemitem class="username">root</systemitem> ώστε να τις εγκαταστήσει
- χειροκίνητα.</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>/boot/GENERIC</filename> (αν υπάρχει), ακόμα
- και αν δεν είναι ο ενεργός πυρήνας του συστήματος (αυτός που
- εκτελείται τη συγκεκριμένη στιγμή).</para>
-
- <note>
- <para>Είναι γενικά καλή ιδέα να έχετε πάντα ένα αντίγραφο του
- πυρήνα <filename>GENERIC</filename> στον κατάλογο <filename>/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 xml:id="freebsdupdate-upgrade">
- <title>Αναβαθμίσεις σε Μικρές και Μεγάλες Εκδόσεις</title>
-
- <para>Η διαδικασία αυτή θα απομακρύνει τα παλιά αρχεία αντικειμενικού
- κώδικα (object files) καθώς και τις παλιές βιβλιοθήκες, κάνοντας
- τις περισσότερες εφαρμογές τρίτων κατασκευαστών να μη λειτουργούν.
- Σας συνιστούμε είτε να απεγκαταστήσετε όλα τα εγκατεστημένα ports και
- να τα εγκαταστήσετε ξανά, ή να τα αναβαθμίσετε αργότερα,
- χρησιμοποιώντας το βοηθητικό πρόγραμμα
- <package>ports-mgmt/portupgrade</package>.
- Οι περισσότεροι χρήστες θα θέλουν να κάνουν μια δοκιμαστική
- μεταγλώττιση χρησιμοποιώντας την ακόλουθη εντολή:</para>
-
- <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
-
- <para>Με αυτό τον τρόπο εξασφαλίζεται ότι τα πάντα θα επανεγκατασταθούν
- σωστά. Σημειώστε ότι αν θέσετε την μεταβλητή περιβάλλοντος
- <varname>BATCH</varname> στην τιμή <literal>yes</literal>, όλες οι
- πιθανές ερωτήσεις που θα εμφανιστούν κατά τη διαδικασία, θα
- απαντηθούν αυτόματα με <literal>yes</literal>. Έτσι δεν υπάρχει πλέον
- ανάγκη για παρέμβαση του χρήστη κατά τη διάρκεια της διαδικασίας
- μεταγλώττισης.</para>
-
- <para>Αν χρησιμοποιείται προσαρμοσμένος πυρήνας, η διαδικασία
- αναβάθμισης είναι ελαφρά πιο πολύπλοκη. Θα χρειαστείτε ένα αντίγραφο
- του πυρήνα <filename>GENERIC</filename> στον κατάλογο <filename>/boot/GENERIC</filename>. Αν δεν υπάρχει ήδη ο
- πυρήνας <filename>GENERIC</filename> στο σύστημα σας, μπορείτε να τον
- ανακτήσετε χρησιμοποιώντας μια από τις παρακάτω μεθόδους:</para>
-
- <itemizedlist>
- <listitem>
- <para>Αν έχετε μεταγλωττίσει προσαρμοσμένο πυρήνα μόνο μια φορά, ο
- πυρήνας στον κατάλογο <filename>/boot/kernel.old</filename> είναι στην
- πραγματικότητα ο <filename>GENERIC</filename>. Απλώς μετονομάστε
- τον κατάλογο σε <filename>/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/X.Y-RELEASE/kernels</userinput>
-&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
-
- <para>Αντικαταστήστε το <filename>X.Y-RELEASE</filename>
- με τους πραγματικούς αριθμούς της έκδοσης που χρησιμοποιείτε.
- Ο πυρήνας <filename>GENERIC</filename> θα εγκατασταθεί από
- προεπιλογή στον κατάλογο <filename>/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>/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>/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>Όλο το λογισμικό τρίτου κατασκευαστή θα πρέπει τώρα να
- μεταγλωττιστεί και να επανεγκατασταθεί από την αρχή. Αυτό απαιτείται
- καθώς το εγκατεστημένο λογισμικό ίσως εξαρτάται από βιβλιοθήκες οι
- οποίες αφαιρέθηκαν κατά τη διαδικασία της αναβάθμισης. Μπορείτε να
- χρησιμοποιήσετε την εντολή
- <package>ports-mgmt/portupgrade</package>
- για να αυτοματοποιήσετε αυτή τη διαδικασία. Για να ξεκινήσετε, δώστε
- τις παρακάτω εντολές:</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 xml: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) όπως
- είναι για παράδειγμα το
- <package>security/snort</package>.
- Καθώς το <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 xml:id="updating-upgrading-portsnap">
- <info><title>Portsnap: Ένα Εργαλείο Ενημέρωσης της Συλλογής των Ports</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Colin</firstname><surname>Percival</surname></personname><contrib>Βασισμένο σε σημειώσεις που παρείχε ο </contrib></author>
- </authorgroup>
- </info>
-
-
- <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... 9 mirrors found.
-Fetching snapshot tag from geodns-1.FreeBSD.org... done.
-Fetching snapshot metadata... done.
-Updating from Tue May 22 02:12:15 CEST 2012 to Wed May 23 16:28:31 CEST 2012.
-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>/usr/ports</filename>.</para>
- </sect1>
-
- <sect1 xml: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;. Αν και πάντα
- μπορείτε να βρείτε την πιο πρόσφατη τεκμηρίωση στην <link xlink:href="http://www.freebsd.org/doc/">δικτυακή τοποθεσία του &os;</link>,
- ορισμένοι χρήστες ίσως έχουν αργή ή μη σταθερή σύνδεση με το Διαδίκτυο.
- Ευτυχώς υπάρχουν αρκετοί τρόποι για να ενημερώσετε την τεκμηρίωση η
- οποία παρέχεται με κάθε επίσημη έκδοση, διατηρώντας το δικό σας τοπικό
- αντίγραφο της πιο πρόσφατης τεκμηρίωσης του &os;.</para>
-
- <sect2 xml:id="csup-doc">
- <title>Χρησιμοποιώντας το CVSup για την Ενημέρωση της
- Τεκμηρίωσης</title>
-
- <para>Ο πηγαίος κώδικας και το εγκατεστημένο αντίγραφο της τεκμηρίωσης
- του &os;, μπορούν να ενημερωθούν με την βοήθεια του
- <application>CVSup</application>, χρησιμοποιώντας ένα μηχανισμό
- παρόμοιο με αυτόν που χρησιμοποιείται στο βασικό σύστημα (δείτε το
- <xref linkend="makeworld"/>). Η ενότητα αυτή περιγράφει:</para>
-
- <itemizedlist>
- <listitem>
- <para>Πως να εγκαταστήσετε τα εργαλεία που απαιτούνται για την
- τεκμηρίωση, με τα οποία μπορείτε να δημιουργήσετε την τεκμηρίωση
- του &os; ξεκινώντας από τον πηγαίο της κώδικα.</para>
- </listitem>
-
- <listitem>
- <para>Πως να κατεβάσετε ένα αντίγραφο του πηγαίου κώδικα της
- τεκμηρίωσης στον κατάλογο <filename>/usr/doc</filename> χρησιμοποιώντας το
- <application>CVSup</application>.</para>
- </listitem>
-
- <listitem>
- <para>Πως να αναδημιουργήσετε την τεκμηρίωση του &os; από τον
- πηγαίο της κώδικα, και να την εγκαταστήσετε στον κατάλογο
- <filename>/usr/share/doc/</filename>.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="installing-documentation-toolchain">
- <title>Εγκαθιστώντας το CVSup και τη Σειρά Εργαλείων της
- Τεκμηρίωσης</title>
-
- <para>Η αναδημιουργία της τεκμηρίωσης του &os; από τον πηγαίο κώδικα,
- απαιτεί μια σχετικά μεγάλη συλλογή εργαλείων. Τα εργαλεία αυτά δεν
- είναι μέρος του βασικού συστήματος του &os;, καθώς χρειάζονται αρκετό
- χώρο στο δίσκο και δεν είναι χρήσιμα σε όλους τους χρήστες.
- Είναι χρήσιμα μόνο στους χρήστες που ασχολούνται με τη συγγραφή νέας
- τεκμηρίωσης για το &os;, ή που ενημερώνουν συχνά την τοπική τους
- τεκμηρίωση μέσω του πηγαίου κώδικα.</para>
-
- <para>Όλα τα απαιτούμενα εργαλεία διατίθενται μέσω της Συλλογής των
- Ports. Το <package>textproc/docproj</package> είναι το κύριο port το
- οποίο έχει αναπτυχθεί από την Ομάδα Τεκμηρίωσης του &os;, για να
- βοηθήσει στην αρχική εγκατάσταση και τις μελλοντικές αναβαθμίσεις
- αυτών των εργαλείων.</para>
-
- <note>
- <para>Αν δεν απαιτείται η δημιουργία τεκμηρίωσης σε μορφές
- &postscript; ή PDF, μπορείτε να εγκαταστήσετε το port <package>textproc/docproj-nojadetex</package>. Αυτή η
- έκδοση των εργαλείων περιέχει τα πάντα εκτός από την μηχανή
- στοιχειοθεσίας <application>teTeX</application>.
- Το <application>teTeX</application> είναι μια αρκετά μεγάλη συλλογή
- εργαλείων, και δεν έχει νόημα να το εγκαταστήσετε αν δεν σας
- είναι απαραίτητη η παραγωγή της τεκμηρίωσης σε μορφή
- PDF.</para>
- </note>
-
- <para>Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση και χρήση
- του <application>CVSup</application>, δείτε την ενότητα <link linkend="cvsup">Χρησιμοποιώντας το CVSup</link>.</para>
- </sect2>
-
- <sect2 xml: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 cvsup.FreeBSD.org -g -L 2 /usr/share/examples/cvsup/doc-supfile</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>/usr/doc</filename>. Θέτοντας τις μεταβλητές
- <varname>SUP_UPDATE</varname>, <varname>SUPHOST</varname> και
- <varname>DOCSUPFILE</varname> στο αρχείο
- <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>Αν θέσετε τις τιμές των <varname>SUPHOST</varname> και
- <varname>DOCSUPFILE</varname> σε <literal>?=</literal>, θα μπορείτε
- να ορίσετε άλλες τιμές για αυτές στη γραμμή εντολής του make.
- Αυτός είναι και ο συνιστώμενος τρόπος να προσθέσετε επιλογές στο
- <filename>make.conf</filename>, ώστε να αποφεύγετε να τροποποιείτε
- συνέχεια το αρχείο κάθε φορά που θέλετε να δοκιμάσετε μια νέα τιμή
- σε μια επιλογή.</para>
- </note>
- </sect2>
-
- <sect2 xml:id="updating-documentation-options">
- <title>Προσαρμογή Επιλογών στον Πηγαίο Κώδικα της Τεκμηρίωσης</title>
-
- <para>Το σύστημα ενημέρωσης και μεταγλώττισης της τεκμηρίωσης του &os;,
- υποστηρίζει μερικές επιλογές που διευκολύνουν τη διαδικασία
- ενημέρωσης ενός μόνο μέρους της τεκμηρίωσης, ή την μεταγλώττιση
- της τεκμηρίωσης κάποιων συγκεκριμένων μεταφράσεων. Αν θέλετε οι
- επιλογές αυτές να ισχύουν μόνιμα, μπορείτε να τις ορίσετε μέσα στο
- αρχείο <filename>/etc/make.conf</filename>, διαφορετικά μπορείτε να
- τις ορίζετε κάθε φορά στη γραμμή εντολής της &man.make.1;.</para>
-
- <para>Κάποιες από τις επιλογές αυτές φαίνονται παρακάτω:</para>
-
- <variablelist>
- <varlistentry>
- <term><varname>DOC_LANG</varname></term>
-
- <listitem>
- <para>Λίστα των γλωσσών και κωδικοποιήσεων που θα μεταγλωττιστούν
- και θα εγκατασταθούν, π.χ. <literal>en_US.ISO8859-1</literal>
- αν είναι επιθυμητή μόνο η Αγγλική τεκμηρίωση.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>FORMATS</varname></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><varname>SUPHOST</varname></term>
-
- <listitem>
- <para>Το όνομα του εξυπηρετητή <application>CVSup</application>
- που θα χρησιμοποιηθεί κατά την ενημέρωση.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>DOCDIR</varname></term>
-
- <listitem>
- <para>Ο κατάλογος στον οποίο θα εγκατασταθεί η τεκμηρίωση. Από
- προεπιλογή είναι ο <filename>/usr/share/doc</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Για περισσότερες πληροφορίες σχετικά με τις μεταβλητές του make
- που υποστηρίζονται ως επιλογές συστήματος στο &os;, δείτε την σελίδα
- manual του &man.make.conf.5;.</para>
-
- <para>Για περισσότερες πληροφορίες και μεταβλητές make που
- υποστηρίζονται από το σύστημα μεταγλώττισης της τεκμηρίωσης του &os;,
- παρακαλούμε δείτε τις <link xlink:href="&url.doc.langbase.en;/books/fdp-primer">Οδηγίες της Ομάδας
- Τεκμηρίωσης του &os; για Νέους Συγγραφείς</link>.</para>
- </sect2>
-
- <sect2 xml:id="updating-installed-documentation">
- <title>Εγκατάσταση της Τεκμηρίωσης του FreeBSD από τον Πηγαίο
- Κώδικα</title>
-
- <para>Έχοντας ενημερώσει το τοπικό αντίγραφο του πηγαίου κώδικα της
- τεκμηρίωσης στον κατάλογο <filename>/usr/doc</filename>, είμαστε έτοιμοι για την
- ενημέρωση της εγκατεστημένης τεκμηρίωσης.</para>
-
- <para>Μπορείτε να προχωρήσετε σε πλήρη ενημέρωση όλων των γλωσσών που
- ορίζονται στην επιλογή <varname>DOC_LANG</varname> του Makefile,
- γράφοντας:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Αν έχετε ρυθμίσει το <filename>make.conf</filename> με τις σωστές
- τιμές για τις επιλογές <varname>DOCSUPFILE</varname>,
- <varname>SUPHOST</varname> και <varname>SUP_UPDATE</varname>, μπορείτε
- να συνδυάσετε τα βήματα ενημέρωσης και εγκατάστασης του πηγαίου
- κώδικα σε ένα, γράφοντας:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
-&prompt.root; <userinput>make update install clean</userinput></screen>
-
- <para>Αν επιθυμείτε την ενημέρωση μιας μόνο συγκεκριμένης γλώσσας,
- μπορείτε να καλέσετε την &man.make.1; σε ένα συγκεκριμένο
- υποκατάλογο του <filename>/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>Μπορείτε να καθορίσετε τη μορφή της τεκμηρίωσης που θα
- εγκατασταθεί, ρυθμίζοντας τη μεταβλητή <varname>FORMATS</varname> του
- make, π.χ.:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
-&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>
- </sect2>
-
- <sect2 xml:id="doc-ports">
- <info><title>Χρησιμοποιώντας τα Ports της Τεκμηρίωσης</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Βασισμένο σε εργασία του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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, θα τα βρείτε κάτω
- από την κατηγορία <link xlink:href="http://www.freshports.org/docs/">docs</link>.</para>
-
- <sect3 xml: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>, το
- <package>misc/freebsd-doc-en</package> το
- οποίο διαθέτει τα απαραίτητα αρχεία και αποτελεί την
- βάση όλων των άλλων ports τεκμηρίωσης. Από προεπιλογή, το
- port αυτό μεταγλωττίζει μόνο την Αγγλική τεκμηρίωση.</para>
- </listitem>
-
- <listitem>
- <para>Υπάρχει ένα port <quote>όλα σε ένα</quote>, το
- <package>misc/freebsd-doc-all</package> το
- οποίο μεταγλωττίζει και εγκαθιστά όλη την τεκμηρίωση σε όλες τις
- διαθέσιμες γλώσσες.</para>
- </listitem>
-
- <listitem>
- <para>Τέλος, υπάρχει ένα <quote>εξαρτώμενο port</quote> για κάθε
- μετάφραση, π.χ.: <package>misc/freebsd-doc-el</package> για την
- Ελληνική τεκμηρίωση. Όλα αυτά τα ports εξαρτώνται από το
- master port και εγκαθιστούν την τεκμηρίωση που έχει μεταφραστεί
- στην αντίστοιχη γλώσσα.</para>
- </listitem>
- </itemizedlist>
-
- <para>Για να εγκαταστήσετε ένα port τεκμηρίωσης από τον πηγαίο κώδικα,
- εκτελέστε τις παρακάτω εντολές
- (ως <systemitem class="username">root</systemitem>):</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> κειμένων
- (όπως χρησιμοποιούνται και στο <uri xlink:href="http://www.FreeBSD.org">http://www.FreeBSD.org</uri>), στον κατάλογο <filename>/usr/local/share/doc/freebsd</filename>.</para>
-
- <sect4 xml:id="doc-ports-options">
- <title>Συνηθισμένες Επιλογές και Παράμετροι Μεταγλώττισης</title>
-
- <para>Μπορείτε να χρησιμοποιήσετε αρκετές επιλογές για την
- τροποποίηση της προεπιλεγμένης συμπεριφοράς των ports τεκμηρίωσης.
- Παρακάτω δείχνουμε μερικές μόνο από αυτές:</para>
-
- <variablelist>
- <varlistentry>
- <term><varname>WITH_HTML</varname></term>
-
- <listitem>
- <para>Επιτρέπει τη δημιουργία της τεκμηρίωσης σε μορφή HTML.
- Θα δημιουργηθεί ένα αρχείο HTML για κάθε κείμενο.
- Η μορφοποιημένη τεκμηρίωση θα αποθηκευθεί, ανάλογα με την
- περίπτωση, σε ένα αρχείο με όνομα
- <filename>article.html</filename> ή
- <filename>book.html</filename>. Θα γίνει επίσης και
- αποθήκευση των αντίστοιχων εικόνων.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><varname>WITH_PDF</varname></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><varname>DOCBASE</varname></term>
-
- <listitem>
- <para>Πρόκειται για την θέση στην οποία θα εγκατασταθεί η
- τεκμηρίωση. Από προεπιλογή, είναι ο κατάλογος <filename>/usr/local/share/doc/freebsd</filename>.</para>
-
- <note>
- <para>Παρατηρήστε ότι ο προεπιλεγμένος κατάλογος διαφέρει
- από αυτόν που χρησιμοποιείται στη μέθοδο
- <application>CVSup</application>. Αυτό συμβαίνει επειδή
- γίνεται εγκατάσταση port, τα οποία από προεπιλογή
- χρησιμοποιούν τον κατάλογο <filename>/usr/local</filename>. Μπορείτε
- να παρακάμψετε αυτή την προεπιλογή, αλλάζοντας την τιμή
- της μεταβλητής <varname>PREFIX</varname>.</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 xml: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>lang-freebsd-doc</literal> στο
- όνομα τους, η οποία διαφέρει από την αντίστοιχη μορφή του port.
- Το <replaceable>lang</replaceable> είναι η σύντομη μορφή της
- γλώσσας, π.χ. <literal>el</literal> για Ελληνικά ή
- <literal>zh_cn</literal> για Απλοποιημένα Κινέζικα.</para>
- </note>
- </sect3>
-
- <sect3 xml:id="doc-ports-update">
- <title>Ενημερώνοντας τα Ports της Τεκμηρίωσης</title>
-
- <para>Για να ενημερώσετε ένα ήδη εγκατεστημένο port τεκμηρίωσης,
- μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο αναβάθμισης ports.
- Για παράδειγμα, η παρακάτω εντολή ενημερώνει την εγκατεστημένη
- Ελληνική τεκμηρίωση μέσω του εργαλείου <package>ports-mgmt/portupgrade</package> με τη χρήση μόνο
- έτοιμων πακέτων:</para>
-
- <screen>&prompt.root; <userinput>portupgrade -PP el-freebsd-doc</userinput></screen>
- </sect3>
- </sect2>
-
-<!-- XXX
- <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>&dash;&dash;delete</option>, καθώς
- η <command>make installworld</command> εγκαθιστά κάποια πράγματα στον
- κατάλογο <filename class="directory">/usr/share/doc</filename> τα
- οποία θα σβηστούν. Για να καθαρίσετε τα παλιά αρχεία, χρησιμοποιήστε
- την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>rsync -rltvz &dash;&dash;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 xml: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 xml: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>
-
- <orderedlist>
- <listitem>
- <para>Γραφτείτε στις λίστες &a.current.name; και
- &a.svn-src-head.name;<indexterm><primary>-CURRENT</primary><secondary>using</secondary></indexterm>. Δεν είναι απλώς καλή ιδέα, είναι
- <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>
- <listitem>
- <para>Χρησιμοποιήστε το πρόγραμμα <link linkend="cvsup">cvsup</link><indexterm><primary><command>cvsup</command></primary></indexterm> σε συνδυασμό με το
- <filename>supfile</filename> με την ονομασία
- <filename>standard-supfile</filename> το οποίο θα βρείτε
- στον κατάλογο
- <filename>/usr/share/examples/cvsup</filename>.
- Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας
- επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και
- στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές.
- Πολλοί χρήστες εκτελούν το <command>cvsup</command><indexterm><primary>-CURRENT</primary><secondary>Syncing with <application>CVSup</application></secondary></indexterm> μέσω
- του <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>
-
- <listitem>
- <para>Χρησιμοποιήστε την υπηρεσία <application>CTM</application><indexterm><primary>-CURRENT</primary><secondary>Syncing with CTM</secondary></indexterm>. Αν έχετε πολύ κακή
- συνδεσιμότητα (υψηλό κόστος σύνδεσης ή πρόσβαση μόνο μέσω
- email) το <application>CTM</application> αποτελεί για σας
- μια εναλλακτική λύση. Μπορεί ωστόσο να σας δημιουργήσει
- διάφορα προβλήματα και να καταλήξετε με χαλασμένα αρχεία.
- Για το λόγο αυτό, το <application>CTM</application>
- χρησιμοποιείται σπάνια, κάτι το οποίο αυξάνει ακόμα
- περισσότερο την πιθανότητα να μη δουλεύει σωστά για μεγάλα
- χρονικά διαστήματα. Σας συνιστούμε να χρησιμοποιήσετε το
- <application>CVSup</application>
- αν διαθέτετε modem 9600&nbsp;bps ή ταχύτερο.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Αν σκοπεύετε να ανακτήσετε τον πηγαίο κώδικα για κανονική
- χρήση (εκτέλεση) και όχι απλώς για να τον δείτε, τότε
- ανακτήστε <emphasis>ολόκληρο</emphasis> το &os.current; και όχι
- κάποια επιλεγμένα τμήματα. Σε διαφορετική περίπτωση, είναι
- αρκετά πιθανό να συναντήσετε προβλήματα, καθώς πολλά κομμάτια
- του κώδικα εξαρτώνται από ανανεώσεις σε άλλα, και δεν μπορούν
- να μεταγλωττιστούν αυτόνομα.</para>
-
- <para>Πριν μεταγλωττίσετε το &os.current;<indexterm><primary>-CURRENT</primary><secondary>compiling</secondary></indexterm>, διαβάστε προσεκτικά το
- <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 xml: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;, δείτε <link xlink:href="&url.base;/security/">http://www.FreeBSD.org/security/</link>.</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>
-
- <orderedlist>
- <listitem>
- <para>Γραφτείτε συνδρομητής στη λίστα &a.stable.name;. Θα είστε
- έτσι ενημερωμένοι για εξαρτήσεις μεταγλώττισης που ίσως
- εμφανιστούν στο &os.stable;<indexterm><primary>-STABLE</primary><secondary>using</secondary></indexterm>, ή για άλλα προβλήματα που χρήζουν
- ειδικής προσοχής. Στη λίστα αυτή θα βρίσκετε επίσης
- ανακοινώσεις από μέλη της ομάδας ανάπτυξης, όταν πρόκειται να
- συμπεριληφθεί κάποια αμφιλεγόμενη ανανέωση ή διόρθωση, δίνοντας
- έτσι στους χρήστες την ευκαιρία να εκφέρουν γνώμη σχετικά με τα
- προβλήματα που θα προκαλέσει η προτεινόμενη αλλαγή.</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;, παρακαλούμε να
- ελέγξετε την τοποθεσία <link xlink:href="&url.base;/snapshots/">Snapshots</link> για
- περισσότερες πληροφορίες. Εναλλακτικά, είναι δυνατόν να
- εγκαταστήσετε το πιο πρόσφατο &os.stable; από κάποιο
- <link linkend="mirrors">mirror site</link> ακολουθώντας τις
- παρακάτω οδηγίες ώστε να αναβαθμίσετε το σύστημα σας στην πλέον
- πρόσφατη έκδοση πηγαίου κώδικα του &os.stable;.</para>
-
- <para>Αν διαθέτετε ήδη κάποια προηγούμενη έκδοση του &os; και
- επιθυμείτε να αναβαθμιστείτε μέσω του πηγαίου κώδικα, μπορείτε
- εύκολα να χρησιμοποιήσετε κάποιο <link linkend="mirrors">mirror site</link> του &os;. Υπάρχουν δύο
- τρόποι για να γίνει αυτό:</para>
-
- <orderedlist>
- <listitem>
-
- <para>Χρησιμοποιήστε το πρόγραμμα <link linkend="cvsup">cvsup</link><indexterm><primary><command>cvsup</command></primary></indexterm> σε συνδυασμό με το
- <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><indexterm><primary>-STABLE</primary><secondary>syncing with <application>CVSup</application></secondary></indexterm> για το
- περιβάλλον σας.</para>
- </listitem>
-
- <listitem>
- <para>Χρησιμοποιήστε την υπηρεσία <application>CTM</application><indexterm><primary>-STABLE</primary><secondary>syncing with CTM</secondary></indexterm>. Αν δεν έχετε
- γρήγορη και φτηνή σύνδεση με το Internet, αυτή είναι η
- συνιστώμενη μέθοδος.</para>
- </listitem>
- </orderedlist>
- </listitem>
-
- <listitem>
- <para>Ουσιαστικά, αν χρειάζεστε γρήγορη και κατά απαίτηση
- πρόσβαση στον πηγαίο κώδικα, και το εύρος ζώνης της σύνδεσης
- δεν αποτελεί πρόβλημα, χρησιμοποιήστε το
- <command>cvsup</command> ή το <command>ftp</command>.
- Διαφορετικά, χρησιμοποιήστε το
- <application>CTM</application>.</para>
- </listitem>
-
- <listitem>
- <para>Πριν μεταγλωττίσετε το &os.stable;<indexterm><primary>-STABLE</primary><secondary>compiling</secondary></indexterm>, διαβάστε προσεκτικά το
- <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 xml: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 xml: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 xml: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>Αυτά τα δύο σημεία είναι οι βασικοί λόγοι για τους οποίους
- προτείνονται τα κεντρικά βήματα μιας αναβάθμισης, τα
- βήματα <buildtarget>buildworld</buildtarget>,
- <buildtarget>buildkernel</buildtarget>,
- <buildtarget>installkernel</buildtarget>,
- και <buildtarget>installworld</buildtarget>. Στις επόμενες παραγράφους
- θα περιγράψουμε πιο αναλυτικά αυτά τα βήματα. Υπάρχουν κι άλλοι λόγοι
- όμως για τους οποίους χρειάζεται προσοχή όταν κάνετε μια τέτοια
- αναβάθμιση. Μερικοί από αυτούς είναι οι εξής:</para>
-
- <itemizedlist>
- <listitem>
- <para>Τα παλιά εργαλεία του βασικού συστήματος μπορεί να μην τρέχουν
- σωστά με το νέο πυρήνα. Γι αυτό πρέπει να εγκατασταθεί το
- ενημερωμένο βασικό σύστημα αμέσως μετά την εγκατάσταση του νέου
- πυρήνα.</para>
- </listitem>
-
- <listitem>
- <para>Μερικές φορές χρειάζονται αλλαγές στα αρχεία ρυθμίσεων πριν
- εγκατασταθεί το νέο βασικό σύστημα. Άλλες φορές η εγκατάσταση
- όλων των αρχείων ρυθμίσεων μπορεί να δημιουργήσει προβλήματα στην
- εγκατάσταση. Γι αυτό έχουμε χωρίσει την ενημέρωση των αρχείων
- ρυθμίσεων σε δύο ξεχωριστά βήματα.</para>
- </listitem>
-
- <listitem>
- <para>Στην πλειοψηφία των περιπτώσεων η διαδικασία εγκατάστασης
- αντικαθιστά ή προσθέτει αρχεία του συστήματος· δε σβήνει κανένα
- υπάρχον αρχείο. Σε μερικές περιπτώσεις αυτό μπορεί να
- δημιουργήσει προβλήματα. Όταν υπάρχει τέτοια περίπτωση, η
- διαδικασία εγκατάστασης τυπώνει ενημερωτικά μηνύματα για τα αρχεία
- τα οποία πρέπει να σβηστούν χειροκίνητα. Αυτό το βήμα μπορεί να
- αυτοματοποιηθεί στο μέλλον.</para>
- </listitem>
- </itemizedlist>
-
- <para>Έχοντας όλες αυτές τις ιδιαιτερότητες μιας αναβάθμισης από πηγαίο
- κώδικα, καταλήξαμε στην παρακάτω διαδικασία αναβάθμισης. Ορισμένες
- φορές μπορεί να χρειάζεται να προσθέσετε κάποια βήματα σε αυτή τη
- διαδικασία. Τα βασικά βήματα όμως παραμένουν τα ίδια, κι είναι τα
- εξής:</para>
-
- <orderedlist>
- <listitem>
- <para><command>make buildworld</command></para>
-
- <para>Αυτό το βήμα μεταγλωττίζει πρώτα μια ενημερωμένη έκδοση του
- ίδιου του μεταγλωττιστή συστήματος και μερικών απαραίτητων
- εργαλείων. Ύστερα, χρησιμοποιώντας το νέο μεταγλωττιστή,
- προετοιμάζει μια νέα έκδοση όλου του βασικού συστήματος του &os;.
- Τα ενημερωμένα εκτελέσιμα, βιβλιοθήκες και αρχεία προγραμματισμού
- καταλήγουν στον
- κατάλογο <filename>/usr/obj</filename>.</para>
- </listitem>
-
- <listitem>
- <para><command>make buildkernel</command></para>
-
- <para>Σε αντίθεση με παλιότερες διαδικασίες αναβάθμισης (οι οποίες
- καλούσαν χειροκίνητα το &man.config.8; και το &man.make.1;) αυτό
- το βήμα μεταγλωττίζει τον πυρήνα του &os; χρησιμοποιώντας τον
- ενημερωμένο μεταγλωττιστή συστήματος από τον
- κατάλογο <filename>/usr/obj</filename>. Αυτό
- σας προστατεύει από προβλήματα ασυμβατότητας μεταξύ του
- μεταγλωττιστή και του πυρήνα.</para>
- </listitem>
-
- <listitem>
- <para><command>make installkernel</command></para>
-
- <para>Εγκατάσταση του νέου πυρήνα και των αρθρωμάτων του στο δίσκο
- του συστήματος. Έτσι μπορεί πλέον το σύστημα να ξεκινήσει με το
- νέο, ενημερωμένο πυρήνα.</para>
- </listitem>
-
- <listitem>
- <para>Εκκίνηση σε λειτουργία single user.</para>
-
- <para>Η λειτουργία single user ελαχιστοποιεί την πιθανότητα να έχετε
- προβλήματα επειδή αναβαθμίσατε κάποιο πρόγραμμα που τρέχει ήδη.
- Είναι επίσης πιο ασφαλής, αφού δε χρειάζεται να τρέξετε τις
- εφαρμογές του παλιού βασικού συστήματος με το νέο πυρήνα.</para>
- </listitem>
-
- <listitem>
- <para><command>mergemaster -p</command></para>
-
- <para>Αυτό το βήμα ενημερώνει τα απολύτως βασικά αρχεία ρυθμίσεων
- του &os;, για να μπορέσετε να εγκαταστήσετε σωστά το νέο βασικό
- σύστημα. Ενημερώνει, για παράδειγμα, τη βάση χρηστών και ομάδων
- χρηστών του &os;. Κάθε φορά που προστίθεται ένας νέος χρήστης
- συστήματος ή μια νέα ομάδα χρηστών, το
- βήμα <buildtarget>installworld</buildtarget> της αναβάθμισης θεωρεί
- ότι έχετε ήδη ρυθμίσει τους νέους χρήστες ή τις νέες ομάδες. Αυτό
- ακριβώς κάνει σε αυτό το σημείο το εργαλείο
- &man.mergemaster.8;.</para>
- </listitem>
-
- <listitem>
- <para><command>make installworld</command></para>
-
- <para>Το επόμενο βήμα είναι να εγκαταστήσετε το ενημερωμένο βασικό
- σύστημα από τον
- κατάλογο <filename>/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 world</command> και
- ύστερα μεταγλωττίζοντας και στήνοντας ένα νέο πυρήνα.</para>
-
- <para>Όταν όμως αναβαθμίσετε το &os; μεταξύ major εκδόσεων, καλύτερα να
- χρησιμοποιήσετε τη διαδικασία που περιγράφουμε εδώ. Αλλιώς μπορεί να
- αντιμετωπίσετε προβλήματα είτε κατά τη διάρκεια της αναβάθμισης ή αφού
- έχει πλέον ολοκληρωθεί.</para>
-
- <para>Κάποιες από τις αναβαθμίσεις (π.χ. από μια έκδοση
- &nbsp;4.<replaceable>X</replaceable> σε 5.0) μπορεί να απαιτούν μερικά
- χειροκίνητα βήματα (όπως το να μετακινήσετε ή να σβήσετε συγκεκριμένα
- αρχεία πριν το βήμα <buildtarget>installworld</buildtarget>). Πριν από
- κάθε αναβάθμιση διαβάστε προσεκτικά τις οδηγίες στο
- αρχείο <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> πριν
- το βήμα <buildtarget>buildworld</buildtarget>. Οι περιπτώσεις αυτές
- περιγράφονται στο <filename>UPDATING</filename>. Σε γενικές
- γραμμές πάντως, μπορείτε με ασφάλεια να παραλείψετε αυτό το βήμα,
- αν δεν αναβαθμίζετε το σύστημα σας μεταξύ πολλαπλών εκδόσεων του
- &os;.</para>
- </note>
-
- <para>Μετά την επιτυχή ολοκλήρωση του
- <buildtarget>installkernel</buildtarget>, θα πρέπει να επανεκκινήσετε
- σε κατάσταση ενός χρήστη (π.χ. χρησιμοποιώντας την εντολή
- <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 xml: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 xml: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>Ένας τυπικός χρήστης θα θέλει πιθανώς να αντιγράψει τις γραμμές
- <varname>CFLAGS</varname> και
- <varname>NO_PROFILE</varname> από το αρχείο
- <filename>/usr/share/examples/etc/make.conf</filename>
- στο
- <filename>/etc/make.conf</filename> αφαιρώντας ταυτόχρονα και το
- σύμβολο του σχολίου.</para>
-
- <para>Εξετάστε και τις άλλες μεταβλητές (<varname>COPTFLAGS</varname>,
- <varname>NOPORTDOCS</varname> κ.ο.κ.) και αποφασίστε αν σχετίζονται
- με το επιθυμητό για σας αποτέλεσμα.</para>
- </sect2>
-
- <sect2 xml: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>Μια τέτοια περίπτωση παρουσιάστηκε όταν προστέθηκε ο χρήστης
- <systemitem class="username">smmsp</systemitem>. Η διαδικασία αναβάθμισης αποτύγχανε σε
- πολλούς χρήστες, τη στιγμή που το &man.mtree.8; προσπαθούσε να
- δημιουργήσει τον κατάλογο
- <filename>/var/spool/clientmqueue</filename>.</para>
-
- <para>Η λύση είναι να εκτελέσετε το &man.mergemaster.8; σε κατάσταση
- προ-εγκατάστασης, δίνοντας την επιλογή <option>-p</option>. Αυτή
- θα συγκρίνει μόνο τα αρχεία που είναι απαραίτητα για την επιτυχία
- εκτέλεσης του <buildtarget>buildworld</buildtarget> ή του
- <buildtarget>installworld</buildtarget>.</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 GID -print</userinput></screen>
-
- <para>Η παραπάνω εντολή θα σας δείξει όλα τα αρχεία τα οποία ανήκουν
- στην ομάδα <replaceable>GID</replaceable> (μπορείτε να δώσετε όνομα
- ή αριθμητικό αναγνωριστικό της ομάδας).</para>
- </tip>
- </sect2>
-
- <sect2 xml:id="makeworld-singleuser">
- <title>Μεταβείτε σε Κατάσταση Ενός Χρήστη</title>
- <indexterm><primary>single-user mode</primary></indexterm>
-
- <para>Ίσως προτιμάτε να μεταγλωττίσετε το σύστημα σε κατάσταση ενός
- χρήστη. Εκτός από το προφανές πλεονέκτημα της ελαφρά μεγαλύτερης
- ταχύτητας, η επανεγκατάσταση του συστήματος θα επηρεάσει πολλά
- σημαντικά αρχεία του συστήματος, όλα τα εκτελέσιμα αρχεία του βασικού
- συστήματος, τις βιβλιοθήκες, τα αρχεία include κ.α. Αν τα αλλάξετε
- αυτά σε ένα σύστημα που βρίσκεται σε κανονική λειτουργία (και ειδικά
- αν υπάρχουν ενεργοί χρήστες την δεδομένη στιγμή), ψάχνετε για
- μπελάδες.</para>
-
- <indexterm><primary>multi-user mode</primary></indexterm>
- <para>Μια άλλη μέθοδος είναι να μεταγλωττίσετε το σύστημα σε κατάσταση
- κανονικής λειτουργίας, αλλά να μεταβείτε σε κατάσταση ενός χρήστη για
- την εγκατάσταση. Αν θέλετε να το κάνετε με αυτό τον τρόπο, απλώς
- μην εκτελέσετε τα ακόλουθα βήματα μέχρι το τέλος της μεταγλώττισης.
- Μπορείτε να αναβάλλετε τη μετάβαση σε κατάσταση ενός χρήστη μέχρι
- να είστε έτοιμοι για το <buildtarget>installkernel</buildtarget> ή
- <buildtarget>installworld</buildtarget>.</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 xml: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 xml: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> (όπως στο προηγούμενο
- παράδειγμα) ή ο προσωπικός κατάλογος του
- <systemitem class="username">root</systemitem>.</para>
- </sect3>
-
- <sect3 xml: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 -x -DVARIABLE target</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 target</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 target</userinput></screen>
-
- <para>Όπου το <replaceable>target</replaceable> θα είναι μια από τις
- πολλές επιλογές μεταγλώττισης. Το πρώτο target θα πρέπει πάντα να
- είναι το <varname>buildworld</varname>.</para>
-
- <para>Όπως εννοείται και από το όνομα, το
- <buildtarget>buildworld</buildtarget> μεταγλωττίζει ένα πλήρες δέντρο
- μέσα στον κατάλογο <filename>/usr/obj</filename>, ενώ το
- <buildtarget>installworld</buildtarget>, εγκαθιστά αυτό το δέντρο στο
- τρέχον μηχάνημα.</para>
-
- <para>Η ύπαρξη διαφορετικών επιλογών, είναι χρήσιμη για δύο λόγους.
- Πρώτα από όλα, σας επιτρέπει να εκτελέσετε τη διαδικασία
- μεταγλώττισης με ασφάλεια, γνωρίζοντας ότι δεν πρόκειται να
- επηρεαστεί κανένα τμήμα του τρέχοντος συστήματος σας. Η διαδικασία
- μεταγλώττισης είναι <quote>self hosted</quote>, απομονωμένη από την
- υπόλοιπη λειτουργία του μηχανήματος. Μπορείτε έτσι να εκτελέσετε
- το <buildtarget>buildworld</buildtarget> σε ένα μηχάνημα που βρίσκεται
- σε κανονική λειτουργία (πολλαπλών χρηστών) χωρίς να υπάρχει φόβος
- παρενεργειών. Ωστόσο, συνίσταται να εκτελέσετε το
- <buildtarget>installworld</buildtarget> σε κατάσταση λειτουργίας
- ενός χρήστη.</para>
-
- <para>Ο δεύτερος λόγος είναι ότι σας επιτρέπει να χρησιμοποιήσετε
- προσαρτήσεις NFS για να αναβαθμίσετε πολλά μηχανήματα του δικτύου
- σας. Αν έχετε τρία μηχανήματα, τα
- <systemitem>A</systemitem>, <systemitem>B</systemitem> και <systemitem>C</systemitem>
- τα οποία θέλετε να αναβαθμίσετε, εκτελέστε το
- <command>make buildworld</command> και το
- <command>make installworld</command> στο μηχάνημα
- <systemitem>A</systemitem>. Το <systemitem>B</systemitem> και το
- <systemitem>C</systemitem> μπορούν να προσαρτήσουν τον κατάλογο
- <filename>/usr/src</filename> και τον
- <filename>/usr/obj</filename> από τον <systemitem>A</systemitem> μέσω NFS,
- και έπειτα μπορείτε να εκτελέσετε το
- <command>make installworld</command> για να εγκαταστήσετε το
- έτοιμο πλέον σύστημα στον <systemitem>B</systemitem> και
- <systemitem>C</systemitem>.</para>
-
- <para>Αν και υπάρχει ακόμα το target <buildtarget>world</buildtarget>,
- δεν συνίσταται πλέον η χρήση του.</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 xml: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=MYKERNEL</literal>
- με τον τρόπο που φαίνεται παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput>
-&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen>
- </note>
-
- <para>Σημειώστε ότι αν έχετε ανεβάσει την τιμή του
- <literal>kern.securelevel</literal> πάνω από το 1,
- <emphasis>και</emphasis> έχετε θέσει το flag
- <literal>noschg</literal> ή κάποιο αντίστοιχο στο εκτελέσιμο αρχείο
- του πυρήνα, μάλλον θα χρειαστεί να μεταβείτε σε κατάσταση λειτουργίας
- ενός χρήστη για να χρησιμοποιήσετε το
- <buildtarget>installkernel</buildtarget>. Διαφορετικά, μπορείτε να
- εκτελέσετε και τις δύο αυτές εντολές από την κανονική κατάσταση
- λειτουργίας (πολλών χρηστών) χωρίς να δημιουργηθούν προβλήματα.
- Δείτε τη σελίδα manual του &man.init.8; για λεπτομέρειες σχετικά με
- τη ρύθμιση <literal>kern.securelevel</literal> και τη σελίδα
- του &man.chflags.1; για λεπτομέρειες σχετικά με τα διάφορα flags
- που χρησιμοποιούνται σε αρχεία.</para>
- </sect2>
-
- <sect2 xml:id="new-kernel-singleuser">
- <title>Επανεκκινήστε σε Κατάσταση Λειτουργίας Ενός Χρήστη</title>
- <indexterm><primary>single-user mode</primary></indexterm>
-
- <para>Θα πρέπει να επανεκκινήσετε σε κατάσταση λειτουργίας ενός χρήστη
- για να επαληθεύσετε τη λειτουργία του νέου πυρήνα. Για το σκοπό
- αυτό, χρησιμοποιήστε τις οδηγίες που είδαμε στο
- <xref linkend="makeworld-singleuser"/>.</para>
- </sect2>
-
- <sect2 xml:id="make-installworld">
- <title>Εγκαταστήστε τα Νέα Εκτελέσιμα του Συστήματος</title>
-
- <para>Θα πρέπει τώρα να χρησιμοποιήσετε το
- <buildtarget>installworld</buildtarget> για να εγκαταστήσετε τα νέα
- εκτελέσιμα του συστήματος.</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> δεν πρέπει ποτέ να χρησιμοποιείτε με το
- <buildtarget>installworld</buildtarget>.</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 xml: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 xml:id="mergemaster">
- <info><title><command>mergemaster</command></title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 xml: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 xml: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<indexterm><primary>signal 11</primary></indexterm>
- (ή λάθη με άλλα σήματα). Τι έχει συμβεί;</para>
- </question>
-
- <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>, θέστε
- το <varname>CFLAGS</varname> σε κάτι όπως
- <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 xml:id="make-delete-old">
- <info><title>Διαγραφή Παρωχημένων Αρχείων, Καταλόγων και Βιβλιοθηκών</title>
- <authorgroup>
- <author><personname><firstname>Anton</firstname><surname>Shterenlikht</surname></personname><contrib>Βασισμένο σε σημειώσεις που παρείχε ο </contrib></author>
- </authorgroup>
- </info>
-
- <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 installworld</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 <varname>BATCH_DELETE_OLD_FILES</varname> με τον
- τρόπο που φαίνεται παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
-
- <warning>
- <title>Προειδοποίηση</title>
-
- <para>Η διαγραφή παρωχημένων αρχείων, θα προκαλέσει δυσλειτουργία των
- εφαρμογών που εξακολουθούν να βασίζονται σε αυτά. Αυτό συμβαίνει
- ιδιαίτερα σε παλιές βιβλιοθήκες. Στις περισσότερες περιπτώσεις, θα
- πρέπει να επαναμεταγλωττίσετε τα προγράμματα, ports ή βιβλιοθήκες που
- χρησιμοποιούσαν την παλιά βιβλιοθήκη πριν εκτελέσετε την εντολή
- <command>make delete-old-libs</command>.</para>
- </warning>
-
- <para>Μπορείτε να βρείτε προγράμματα που ελέγχουν τις εξαρτήσεις των
- κοινόχρηστων βιβλιοθηκών στη Συλλογή των Ports, στο <package>sysutils/libchk</package> ή <package>sysuilts/bsdadminscripts</package>.</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. Για να αυτοματοποιήσετε αυτή τη διαδικασία μπορείτε να
- χρησιμοποιήσετε τα βοηθητικά προγράμματα <package>ports-mgmt/portmaster</package> και <package>ports-mgmt/portupgrade</package>. Αφού βεβαιωθείτε
- ότι οι παλιές βιβλιοθήκες δεν χρησιμοποιούνται πλέον από κανένα
- πρόγραμμα, μπορείτε να τις διαγράψετε με την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
- </sect1>
-
- <sect1 xml:id="small-lan">
- <info><title>Διαδικασία για Πολλαπλά Μηχανήματα</title>
- <authorgroup>
- <author><personname><firstname>Mike</firstname><surname>Meyer</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>NFS</primary>
- <secondary>installing multiple machines</secondary>
- </indexterm>
-
- <para>Αν έχετε πολλαπλά μηχανήματα στα οποία πρόκειται να χρησιμοποιήσετε
- το ίδιο δέντρο πηγαίου κώδικα, είναι σπατάλη πόρων (δίσκου, δικτύου και
- επεξεργαστή) να επαναλαμβάνετε σε όλα τη διαδικασία ανάκτησης και
- μεταγλώττισης. Η λύση είναι να ορίσετε ένα μηχάνημα να εκτελεί το
- μεγαλύτερο μέρος της εργασίας, ενώ τα υπόλοιπα θα μπορούν να την
- ανακτούν μέσω NFS. Στην ενότητα αυτή θα παρουσιάσουμε ένα τρόπο με
- τον οποίο μπορεί να γίνει αυτό.</para>
-
- <sect2 xml: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> σε όλα τα μηχανήματα του σετ
- μεταγλώττισης, είναι ίδια με τα αντίστοιχα στο μηχάνημα μεταγλώττισης.
- Αυτό σημαίνει ότι το μηχάνημα μεταγλώττισης θα πρέπει να
- μεταγλωττίζει όλα τα τμήματα του βασικού συστήματος τα οποία θα
- εγκατασταθούν σε κάθε μηχάνημα του σετ. Επίσης, σε κάθε μηχάνημα
- στο σετ μεταγλώττισης θα πρέπει να οριστεί το όνομα του δικού του
- προσαρμοσμένου πυρήνα μέσω της μεταβλητής
- <varname>KERNCONF</varname> στο <filename>/etc/make.conf</filename>,
- ενώ και το μηχάνημα μεταγλώττισης θα πρέπει να έχει μια λίστα όλων
- των άλλων στο <varname>KERNCONF</varname>, ξεκινώντας από το δικό
- του. Το μηχάνημα μεταγλώττισης, θα πρέπει να έχει τα αρχεία ρύθμισης
- του πυρήνα όλων των άλλων μηχανημάτων στον κατάλογο
- <filename>/usr/src/sys/arch/conf</filename>
- αν πρόκειται να μεταγλωττίζει τους πυρήνες τους.</para>
- </sect2>
-
- <sect2 xml: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 xml:id="small-lan-ports">
- <title>Ports</title>
-
- <para>Μπορείτε να χρησιμοποιήσετε τις ίδιες ιδέες και για το δέντρο
- των ports. Το πρώτο κρίσιμο βήμα είναι να προσαρτήσετε το
- <filename>/usr/ports</filename> από το ίδιο μηχάνημα, σε όλα τα
- μηχανήματα του σετ μεταγλώττισης. Μπορείτε έπειτα να ρυθμίσετε το
- <filename>/etc/make.conf</filename> ώστε να διαμοιράζονται τα
- distfiles. Θα πρέπει να θέσετε το <varname>DISTDIR</varname> σε ένα
- κοινόχρηστο κατάλογο, στον οποίο θα δώσετε δικαιώματα εγγραφής σε
- οποιοδήποτε χρήστη έχετε δηλώσει ως <systemitem class="username">root</systemitem> στο
- NFS. Σε κάθε μηχάνημα θα πρέπει επίσης να οριστεί η μεταβλητή
- <varname>WRKDIRPREFIX</varname> ώστε να δείχνει σε ένα τοπικό
- κατάλογο. Τέλος, αν σκοπεύετε να μεταγλωττίζετε και να διανέμετε
- έτοιμα πακέτα, θα πρέπει να θέσετε την μεταβλητή
- <varname>PACKAGES</varname> σε ένα κατάλογο, όπως κάνατε και με την
- <varname>DISTDIR</varname>.</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/desktop/chapter.xml b/el_GR.ISO8859-7/books/handbook/desktop/chapter.xml
deleted file mode 100644
index a40320a174..0000000000
--- a/el_GR.ISO8859-7/books/handbook/desktop/chapter.xml
+++ /dev/null
@@ -1,1390 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Desktop Εφαρμογές
-
- The FreeBSD Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.xml
- %SRCID% 39265
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="desktop">
- <info><title>Desktop Εφαρμογές</title>
- <authorgroup>
- <author><personname><firstname>Christophe</firstname><surname>Juniet</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml:id="desktop-browsers">
- <title>Φυλλομετρητές (Browsers)</title>
-
- <indexterm>
- <primary>browsers</primary>
- <secondary>web</secondary>
- </indexterm>
-
- <para>Το &os; δεν έχει προεγκατεστημένο κάποιο συγκεκριμένο φυλλομετρητή.
- Στον κατάλογο
- <link xlink:href="http://www.FreeBSD.org/ports/www.html">www</link>
- της συλλογής Ports μπορείτε να βρείτε αρκετούς φυλλομετρητές, έτοιμους
- για εγκατάσταση. Αν δεν έχετε χρόνο για να μεταγλωττίσετε
- ότι χρειάζεστε (ίσως χρειαστείτε αρκετή ώρα), πολλοί
- από αυτούς είναι διαθέσιμοι και ως έτοιμα πακέτα.</para>
-
- <para>Τα <application>KDE</application> και
- <application>GNOME</application>, ως πλήρη περιβάλλοντα εργασίας,
- παρέχουν τους δικούς τους φυλλομετρητές HTML. Δείτε το
- <xref linkend="x11-wm"/> για περισσότερες πληροφορίες σχετικά με την
- εγκατάσταση τους.</para>
-
- <para>Αν ενδιαφέρεστε για ελαφρείς (από άποψη κατανάλωσης πόρων)
- φυλλομετρητές, δείτε τις ακόλουθες εφαρμογές στη συλλογή των Ports:
- <package>www/dillo2</package>,
- <package>www/links</package>, ή
- <package>www/w3m</package>.</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>. Αν θέλετε να εγκαταστήσετε
- την παλιά έκδοση εκτεταμένης υποστήριξης (Extended Support Release,
- ESR), πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r firefox-esr</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> ESR, αντικαταστήστε
- στην παραπάνω εντολή τη λέξη <literal>firefox</literal> με
- <literal>firefox-esr</literal>.</para>
- </sect2>
-
- <sect2 xml: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 <package>java/icedtea-web</package>:</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 xml: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
- <package>www/nspluginwrapper</package>.
- Το port αυτό απαιτεί το
- <package>emulators/linux_base-fc4</package>
- το οποίο είναι μεγάλο.</para>
-
- <para>Το επόμενο βήμα είναι η εγκατάσταση του port
- <package>www/linux-flashplugin9</package>.
- Θα εγκατασταθεί η έκδοση
- &flash;&nbsp;9.<replaceable>X</replaceable> η οποία
- γνωρίζουμε ότι δουλεύει σωστά στο
- &os;&nbsp;7.<replaceable>X</replaceable>.</para>
-
- <note>
- <para>Σε εκδόσεις του &os; παλαιότερες από την 7.1-RELEASE, θα
- πρέπει να εγκαταστήσετε το πακέτο <package>www/linux-flashplugin7</package> και να
- παραλείψετε το βήμα σχετικά με το &man.linprocfs.5; που
- φαίνεται παρακάτω.</para>
- </note>
- </step>
-
- <step>
- <title>Για το &os;&nbsp;8.<replaceable>X</replaceable> ή Νεώτερη
- Έκδοση</title>
-
- <para>Εγκαταστήστε το port
- <package>www/nspluginwrapper</package>.
- Το port αυτό απαιτεί το
- <package>emulators/linux_base-f10</package>
- το οποίο είναι μεγάλο.</para>
-
- <para>Το επόμενο βήμα είναι η εγκατάσταση του &flash; 11.X από
- το port <package>www/linux-f10-flashplugin11</package>.</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>/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>Μετά την εγκατάσταση του plugin, ξεκινήστε το φυλλομετρητή σας,
- γράψτε <literal>about:plugins</literal> στη γραμμή διευθύνσεων και
- πιέστε <keycap>Enter</keycap>. Θα πρέπει να δείτε μια λίστα με όλα
- τα τρέχοντα διαθέσιμα plugins.</para>
- </sect2>
-
- <sect2 xml: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 <package>www/linux-f10-flashplugin11</package> και έπειτα
- το port <package>www/opera-linuxplugins</package>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/www/linux-f11-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> με την εγκατάσταση του
- <package>x11/kdebase3</package>. Ο
- <application>Konqueror</application> είναι πολύ περισσότερο από ένας
- απλός φυλλομετρητής, είναι επίσης διαχειριστής αρχείων και πρόγραμμα
- προβολής αρχείων πολυμέσων.</para>
-
- <para>Ο <application>Konqueror</application> διατίθεται επίσης με ένα
- σετ από plugins, στο
- <package>misc/konq-plugins</package>.</para>
-
- <para>Ο <application>Konqueror</application> υποστηρίζει τόσο το
- WebKit όσο και το δικό του KHTML. Το WebKit χρησιμοποιείται από
- πολλούς σύγχρονους φυλλομετρητές, συμπεριλαμβανομένου και του
- Chromium. Για να χρησιμοποιήσετε το WebKit με τον
- <application>Konqueror</application> στο &os;:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/www/kwebkitpart</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Μετά την εγκατάσταση, στον <application>Konqueror</application>
- κάντε κλικ στο <quote>Settings</quote>,
- <quote>Configure Konqueror</quote> και τέλος στο
- <quote>Change KHTML to WebKit</quote>.</para>
-
- <para>Ο <application>Konqueror</application> υποστηρίζει επίσης
- <application>&flash;</application> και οι σχετικές οδηγίες (How To)
- είναι διαθέσιμες στο <uri xlink:href="http://freebsd.kde.org/howtos/konqueror-flash.php">http://freebsd.kde.org/howtos/konqueror-flash.php</uri>.</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 xml: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>Έπειτα, εγκαταστήστε το <package>java/icedtea-web</package> από τη Συλλογή των
- 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 xml: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 xml: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></entry>
- </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> για
- το <application>KDE4</application> ως πακέτο, δώστε την ακόλουθη
- εντολή:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r koffice-kde4</userinput></screen>
-
- <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
- Συλλογή των Ports. Για παράδειγμα, για να εγκαταστήσετε το
- <application>KOffice</application> για το
- <application>KDE4</application>, πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/editors/koffice-kde4</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.
- Ο κατάλογος <link xlink:href="http://www.FreeBSD.org/ports/graphics.html">graphics</link>
- της Συλλογής των 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>Ο κατάλογος <link xlink:href="http://www.FreeBSD.org/ports/graphics.html">graphics</link>
- της συλλογής των Ports έχει επίσης την υπό εξέλιξη έκδοση
- της εφαρμογής <application>The GIMP</application> στο
- <package>graphics/gimp-devel</package>.
- Μπορείτε να βρείτε την HTML έκδοση του εγχειριδίου,
- <application>The Gimp Manual</application> στο
- <package>graphics/gimp-manual-html</package>.</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> μπορείτε να βρείτε
- στη <link xlink:href="http://www.openoffice.org/">δικτυακή τοποθεσία του
- OpenOffice.org </link>.
- Για πληροφορίες σχετικά με την έκδοση για &os;, καθώς και για
- απευθείας κατέβασμα πακέτων, χρησιμοποιήστε την δικτυακή τοποθεσία
- <link xlink:href="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
- Porting Team</link>.</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=your_language 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> είναι μια ελεύθερη
- σουίτα εφαρμογών γραφείου η οποία αναπτύσσεται από το <link xlink:href="http://www.documentfoundation.org/">The Document
- Foundation</link>. Είναι συμβατή με τις άλλες
- γνωστές σουίτες γραφείου και διατίθεται για τις περισσότερες
- πλατφόρμες. Πρόκειται για fork της γνωστής εφαρμογής
- <application>OpenOffice.org</application> η οποία περιλαμβάνει όλα
- τα απαραίτητα μιας σουίτας γραφείου: επεξεργαστή κειμένου,
- υπολογιστικό φύλλο, πρόγραμμα παρουσιάσεων, πρόγραμμα σχεδίασης και
- ένα εργαλείο για δημιουργία και επεξεργασία μαθηματικών τύπων.
- Διατίθεται σε πλήθος γλωσσών &mdash; η διεθνής υποστήριξη
- επεκτείνεται μάλιστα τόσο στο περιβάλλον όσο και στα επιπλέον
- προγράμματα ελέγχου ορθογραφίας και λεξικών.</para>
-
- <para>Ο επεξεργαστής κειμένου του <application>OpenOffice</application>
- χρησιμοποιεί εγγενώς μορφή αρχείου XML το οποίο εξασφαλίζει
- αυξημένη φορητότητα και ευελιξία. Το υπολογιστικό φύλλο διαθέτει
- μια γλώσσα μακροεντολών και μπορεί να διασυνδεθεί με εξωτερικές
- βάσεις δεδομένων. Το <application>LibreOffice</application> είναι
- ήδη σταθερό και διατίθεται σε εκδόσεις για &windows;, &linux;, &os;
- και &macos;&nbsp;X. Για περισσότερες πληροφορίες σχετικά με το
- <application>LibreOffice</application> επισκεφθείτε την
- <link xlink:href="http://www.libreoffice.org/">δικτυακή τοποθεσία του</link>.</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>.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=your_language install clean</userinput></screen>
-
- <para>Θα πρέπει να αντικαταστήσετε το
- <replaceable>your_language</replaceable> με το σωστό ISO κωδικό της
- γλώσσας που επιθυμείτε να χρησιμοποιήσετε. Για να βρείτε τον
- κωδικό, δείτε το αρχείο <filename>Makefile</filename> του port και
- ειδικότερα την ενότητα <buildtarget>pre-fetch</buildtarget>.</para>
- </note>
-
- <para>Μπορείτε έπειτα να εκτελέσετε το
- <application>LibreOffice</application> χρησιμοποιώντας την παρακάτω
- εντολή:</para>
-
- <screen>&prompt.user; <userinput>libreoffice</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml:id="desktop-finance">
- <title>Χρηματοοικονομικές Εφαρμογές</title>
-
- <para>Αν, για οποιοδήποτε λόγο, θέλετε να διαχειρίζεστε τα
- χρηματοοικονομικά σας μέσω του &os; desktop σας, υπάρχουν κάποιες
- ισχυρές και εύκολες στη χρήση εφαρμογές, έτοιμες προς εγκατάσταση.
- Ορισμένες από αυτές είναι συμβατές με διαδεδομένες μορφές αρχείων, όπως
- αυτές που χρησιμοποιούνται στα έγγραφα του
- <application>Quicken</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> υποστηρίζει γραφήματα μέσω του
- προγράμματος γραφικών
- <package>math/guppi</package>. Έχει μεγάλο αριθμό
- ενσωματωμένων συναρτήσεων και επιτρέπει όλες τις συνήθεις μορφές
- κελιών, όπως αριθμούς, νομισματικές μονάδες, ημερομηνίες, ώρες και
- πολλές ακόμα.</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 xml:id="desktop-summary">
- <title>Περίληψη</title>
-
- <para>Αν και το &os; είναι δημοφιλές στους παροχείς Internet (ISPs) για
- την απόδοση και τη σταθερότητα του, είναι επίσης έτοιμο και για
- καθημερινή χρήση ως desktop. Με αρκετές χιλιάδες εφαρμογές διαθέσιμες
- ως <link xlink:href="http://www.FreeBSD.org/applications.html">πακέτα</link> ή
- <link xlink:href="http://www.FreeBSD.org/ports/index.html">ports</link>,
- μπορείτε να δημιουργήσετε το τέλειο 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><package>www/opera</package></entry>
- </row>
-
- <row>
- <entry><application>Firefox</application></entry>
- <entry><literal>firefox</literal></entry>
- <entry><package>www/firefox</package></entry>
- </row>
-
- <row>
- <entry><application>Chromium</application></entry>
- <entry><literal>chromium</literal></entry>
- <entry><package>www/chromium</package></entry>
- </row>
-
- <row>
- <entry><application>KOffice</application></entry>
- <entry><literal>koffice-kde4</literal></entry>
- <entry><package>editors/koffice-kde4</package></entry>
- </row>
-
- <row>
- <entry><application>AbiWord</application></entry>
- <entry><literal>abiword</literal></entry>
- <entry><package>editors/abiword</package></entry>
- </row>
-
- <row>
- <entry><application>The GIMP</application></entry>
- <entry><literal>gimp</literal></entry>
- <entry><package>graphics/gimp</package></entry>
- </row>
-
- <row>
- <entry><application>OpenOffice.org</application></entry>
- <entry><literal>openoffice</literal></entry>
- <entry><package>editors/openoffice.org-3</package></entry>
- </row>
-
- <row>
- <entry><application>LibreOffice</application></entry>
- <entry><literal>libreoffice</literal></entry>
- <entry><package>editors/libreoffice</package></entry>
- </row>
-
- <row>
- <entry><application>&acrobat.reader;</application></entry>
- <entry><literal>acroread</literal></entry>
- <entry><package>print/acroread8</package></entry>
- </row>
-
- <row>
- <entry><application>gv</application></entry>
- <entry><literal>gv</literal></entry>
- <entry><package>print/gv</package></entry>
- </row>
-
- <row>
- <entry><application>Xpdf</application></entry>
- <entry><literal>xpdf</literal></entry>
- <entry><package>graphics/xpdf</package></entry>
- </row>
-
- <row>
- <entry><application>GQview</application></entry>
- <entry><literal>gqview</literal></entry>
- <entry><package>graphics/gqview</package></entry>
- </row>
-
- <row>
- <entry><application>GnuCash</application></entry>
- <entry><literal>gnucash</literal></entry>
- <entry><package>finance/gnucash</package></entry>
- </row>
-
- <row>
- <entry><application>Gnumeric</application></entry>
- <entry><literal>gnumeric</literal></entry>
- <entry><package>math/gnumeric</package></entry>
- </row>
-
- <row>
- <entry><application>Abacus</application></entry>
- <entry><literal>abacus</literal></entry>
- <entry><package>deskutils/abacus</package></entry>
- </row>
-
- <row>
- <entry><application>KMyMoney</application></entry>
- <entry><literal>kmymoney2</literal></entry>
- <entry><package>finance/kmymoney2</package></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/disks/chapter.xml b/el_GR.ISO8859-7/books/handbook/disks/chapter.xml
deleted file mode 100644
index 55142fd69b..0000000000
--- a/el_GR.ISO8859-7/books/handbook/disks/chapter.xml
+++ /dev/null
@@ -1,4015 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Αποθηκευτικά Μέσα
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.xml
- %SRCID% 43449
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="disks">
- <title>Αποθηκευτικά Μέσα</title>
-
- <sect1 xml: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>Πως να χρησιμοποιήσετε προγράμματα λήψης αντιγράφων
- ασφαλείας στο &os;.</para>
- </listitem>
- <listitem>
- <para>Τι είναι οι εικόνες (snapshots) σε ένα σύστημα αρχείων και πως
- να τις χρησιμοποιήσετε αποδοτικά.</para>
- </listitem>
- </itemizedlist>
-
- <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
-
- <itemizedlist>
- <listitem>
- <para>Να ξέρετε πως να <link linkend="kernelconfig">ρυθμίσετε και
- να εγκαταστήσετε ένα νέο πυρήνα του &os;</link>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="disks-naming">
- <title>Device Names</title>
-
- <para>The following is a list of physical storage devices
- supported in &os; and their associated device names.</para>
-
- <table xml: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> or
- <literal>ada</literal></entry>
- </row>
-
- <row>
- <entry>IDE CD-ROM drives</entry>
- <entry><literal>acd</literal> or
- <literal>cd</literal></entry>
- </row>
-
- <row>
- <entry>SATA hard drives</entry>
- <entry><literal>ad</literal> or
- <literal>ada</literal></entry>
- </row>
-
- <row>
- <entry>SATA CD-ROM drives</entry>
- <entry><literal>acd</literal> or
- <literal>cd</literal></entry>
- </row>
-
- <row>
- <entry>SCSI hard drives and USB Mass storage
- devices</entry>
- <entry><literal>da</literal></entry>
- </row>
-
- <row>
- <entry>SCSI CD-ROM drives</entry>
- <entry><literal>cd</literal></entry>
- </row>
-
- <row>
- <entry>Assorted non-standard CD-ROM 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 xml:id="disks-adding">
- <info>
- <title>Adding Disks</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>David</firstname>
- <surname>O'Brien</surname>
- </personname>
- <contrib>Originally contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>disks</primary>
- <secondary>adding</secondary>
- </indexterm>
-
- <para>This section describes how to add a new
- <acronym>SATA</acronym> 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 manufacturers. Reboot the
- system and become
- <systemitem class="username">root</systemitem>.</para>
-
- <para>Inspect <filename>/var/run/dmesg.boot</filename> to ensure
- the new disk was found. In this example, the newly added
- <acronym>SATA</acronym> drive will appear as
- <filename>ada1</filename>.</para>
-
- <indexterm><primary>partitions</primary></indexterm>
- <indexterm>
- <primary><command>gpart</command></primary>
- </indexterm>
-
- <para>For this example, a single large partition will be created
- on the new disk. The <link
- xlink:href="http://en.wikipedia.org/wiki/GUID_Partition_Table">
- <acronym>GPT</acronym></link> partitioning scheme will be
- used in preference to the older and less versatile
- <acronym>MBR</acronym> scheme.</para>
-
- <note>
- <para>If the disk to be added is not blank, old partition
- information can be removed with
- <command>gpart delete</command>. See &man.gpart.8; for
- details.</para>
- </note>
-
- <para>The partition scheme is created, and then a single partition
- is added:</para>
-
- <screen>&prompt.root; <userinput>gpart create -s GPT ada1</userinput>
-&prompt.root; <userinput>gpart add -t freebsd-ufs ada1</userinput></screen>
-
- <para>Depending on use, several smaller partitions may be desired.
- See &man.gpart.8; for options to create partitions smaller than
- a whole disk.</para>
-
- <para>A file system is created on the new blank disk:</para>
-
- <screen>&prompt.root; <userinput>newfs -U /dev/ada1p1</userinput></screen>
-
- <para>An empty directory is created as a
- <emphasis>mountpoint</emphasis>, a location for mounting the new
- disk in the original disk's file system:</para>
-
- <screen>&prompt.root; <userinput>mkdir /newdisk</userinput></screen>
-
- <para>Finally, an entry is added to
- <filename>/etc/fstab</filename> so the new disk will be mounted
- automatically at startup:</para>
-
- <programlisting>/dev/ada1p1 /newdisk ufs rw 2 2</programlisting>
-
- <para>The new disk can be mounted manually, without restarting the
- system:</para>
-
- <screen>&prompt.root; <userinput>mount /newdisk</userinput></screen>
- </sect1>
-
- <sect1 xml:id="usb-disks">
- <info>
- <title>USB Storage Devices</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Marc</firstname>
- <surname>Fonvieille</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>USB</primary>
- <secondary>disks</secondary>
- </indexterm>
-
- <para>Many external storage solutions, such as hard drives, USB
- thumbdrives, and CD/DVD burners, use the Universal Serial Bus
- (USB). &os; provides support for these devices.</para>
-
- <sect2>
- <title>Configuration</title>
-
- <para>The USB mass storage devices driver, &man.umass.4;, is
- built into the <filename>GENERIC</filename> kernel and
- provides support for USB storage devices. For a custom
- kernel, be sure that the following lines are present in the
- kernel configuration file:</para>
-
- <programlisting>device scbus
-device da
-device pass
-device uhci
-device ohci
-device ehci
-device usb
-device umass</programlisting>
-
- <para>Since the &man.umass.4; driver uses the SCSI subsystem to
- access the USB storage devices, any USB device will be seen as
- a SCSI device by the system. Depending on the USB chipset on
- the motherboard, <literal>device uhci</literal> or
- <literal>device ohci</literal> is used to provide USB 1.X
- support. Support for USB 2.0 controllers is provided by
- <literal>device ehci</literal>.</para>
-
- <note>
- <para>If the USB device is a CD or DVD burner, &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>
- </sect2>
-
- <sect2>
- <title>Testing the Configuration</title>
-
- <para>To test the USB configuration, plug in the USB device. 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>The brand, device node (<filename>da0</filename>), and
- other details will differ according to the device.</para>
-
- <para>Since the USB device is seen as a SCSI one,
- <command>camcontrol</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, it can be mounted.
- Refer to <xref linkend="disks-adding"/> for
- instructions on how to format and create partitions on the USB
- drive.</para>
-
- <warning>
- <para>Allowing untrusted users to mount arbitrary media, by
- enabling <varname>vfs.usermount</varname> as
- described below, should not be considered safe from a
- security point of view. Most file systems in &os; were not
- built to safeguard against malicious devices.</para>
- </warning>
-
- <para>To make the device mountable as a normal user, one
- solution is to make all users of the device a member of the
- <systemitem class="groupname">operator</systemitem> group
- using &man.pw.8;. Next, ensure that the
- <systemitem class="groupname">operator</systemitem> group is
- able to read and write the device by adding these lines to
- <filename>/etc/devfs.rules</filename>:</para>
-
- <programlisting>[localrules=5]
-add path 'da*' mode 0660 group operator</programlisting>
-
- <note>
- <para>If SCSI disks are installed in 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 first three SCSI disks
- (<filename>da0</filename> to
- <filename>da2</filename>)from belonging to the
- <systemitem class="groupname">operator</systemitem>
- group.</para>
- </note>
-
- <para>Next, enable the &man.devfs.rules.5; ruleset in
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>devfs_system_ruleset="localrules"</programlisting>
-
- <para>Next, instruct the running kernel 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>Since this only takes effect after the next reboot use
- &man.sysctl.8; to set this variable now.</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 <systemitem class="username">root</systemitem> to
- create a subdirectory owned by that user as
- <filename>/mnt/username</filename>. In the following example,
- replace <replaceable>username</replaceable> with the login
- name of the user and <replaceable>usergroup</replaceable> with
- the user's primary group:</para>
-
- <screen>&prompt.root; <userinput>mkdir /mnt/username</userinput>
-&prompt.root; <userinput>chown username:usergroup /mnt/username</userinput></screen>
-
- <para>Suppose a USB thumbdrive is plugged in, and a device
- <filename>/dev/da0s1</filename> appears. If the device is
- preformatted with a FAT file system, it can be mounted
- using:</para>
-
- <screen>&prompt.user; <userinput>mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/username</userinput></screen>
-
- <para>Before the device can be unplugged, it
- <emphasis>must</emphasis> be unmounted first. After device
- removal, the system message buffer will show messages similar
- to 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 also be useful: &man.umass.4;,
- &man.camcontrol.8;, and &man.usbconfig.8; under &os;&nbsp; 8.X
- or &man.usbdevs.8; under earlier versions of &os;.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="creating-cds">
- <info>
- <title>Creating and Using CD Media</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Mike</firstname>
- <surname>Meyer</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>CD-ROMs</primary>
- <secondary>creating</secondary>
- </indexterm>
-
- <sect2>
- <title>Introduction</title>
-
- <para>CD media provide 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.</para>
-
- <para>CD media do have tracks, but this refers to a section of
- data to be read continuously and not a physical property of
- the disk. For example, to produce a CD on &os;, 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. To overcome the original file system limits, 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><package>sysutils/cdrtools</package></primary>
- </indexterm>
-
- <para>The <package>sysutils/cdrtools</package>
- port includes &man.mkisofs.8;, a program that can be used 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 the
- CD burner is ATAPI or something else. ATAPI CD burners use
- <command>burncd</command> which is part of the base system.
- SCSI and USB CD burners should use <command>cdrecord</command>
- from the <package>sysutils/cdrtools</package> port. It is
- also possible to use <command>cdrecord</command> and other
- tools for SCSI drives on ATAPI hardware with the
- <link linkend="atapicam">ATAPI/CAM module</link>.</para>
-
- <para>For CD burning software with a graphical user
- interface, consider <application>X-CD-Roast</application> or
- <application>K3b</application>. These tools are available as
- packages or from the <package>sysutils/xcdroast</package> and
- <package>sysutils/k3b</package> 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 xml:id="mkisofs">
- <title><application>mkisofs</application></title>
-
- <para>The <package>sysutils/cdrtools</package>
- port also installs &man.mkisofs.8;, which 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 imagefile.iso /path/to/tree</userinput></screen>
-
- <indexterm>
- <primary>file systems</primary>
- <secondary>ISO 9660</secondary>
- </indexterm>
-
- <para>This command creates 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
- maps 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 these
- 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 &os; 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 specified &os;
- tree, though it may violate the ISO 9660 standard in a number
- of ways.</para>
-
- <indexterm>
- <primary>CD-ROMs</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
- <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 &os;
- distribution disks, do not use emulation mode. In this case,
- <option>-no-emul-boot</option> should be used. So, if
- <filename>/tmp/myboot</filename> holds a bootable &os; system
- with the boot image in
- <filename>/tmp/myboot/boot/cdboot</filename>, this command
- would produce the image of an ISO 9660 file system as
- <filename>/tmp/bootable.iso</filename>:</para>
-
- <screen>&prompt.root; <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput></screen>
-
- <para>If <filename>md</filename> is configured in the
- kernel, the file system can be mounted as a memory disk
- 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>One can then verify that <filename>/mnt</filename> and
- <filename>/tmp/myboot</filename> are identical.</para>
-
- <para>There are many other options available for
- &man.mkisofs.8; to fine-tune its behavior. Refer to
- &man.mkisofs.8; for details.</para>
- </sect2>
-
- <sect2 xml:id="burncd">
- <title><application>burncd</application></title>
-
- <indexterm>
- <primary>CD-ROMs</primary>
- <secondary>burning</secondary>
- </indexterm>
- <para>For an ATAPI CD burner, <command>burncd</command> can be
- used 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 cddevice data imagefile.iso fixate</userinput></screen>
-
- <para>This command 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 xml:id="cdrecord">
- <title><application>cdrecord</application></title>
-
- <para>For systems without an ATAPI CD burner,
- <command>cdrecord</command> can be used to burn CDs.
- <command>cdrecord</command> is not part of the base system and
- must be installed from either the
- <package>sysutils/cdrtools</package> package or port. Changes
- to the base system can cause binary versions of this program
- to fail, possibly resulting in a <quote>coaster</quote>. It
- is recommended to either upgrade the port when the system is
- upgraded, or for users
- <link linkend="stable">tracking -STABLE</link>, to upgrade the
- port when a new version becomes available.</para>
-
- <para>While <command>cdrecord</command> has many options, basic
- usage is simple. Burning an ISO 9660 image is done
- with:</para>
-
- <screen>&prompt.root; <userinput>cdrecord dev=device imagefile.iso</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 <option>-scanbus</option> which might produce
- results like this:</para>
-
- <indexterm>
- <primary>CD-ROMs</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 the 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 is <option>dev=1,5,0</option>.
- Refer to &man.cdrecord.1; for easier ways to specify this
- value and for information on writing audio tracks and
- controlling the write speed.</para>
- </sect2>
-
- <sect2 xml:id="duplicating-audiocds">
- <title>Duplicating Audio CDs</title>
-
- <para>To duplicate an audio CD, extract the audio data from the
- CD to a series of files, then write 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 -vall -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=2,0 -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>
-
- <note>
- <para>With the help of the
- <link linkend="atapicam">ATAPI/CAM module</link>,
- <command>cdda2wav</command> can also be used on ATAPI
- drives. This tool is usually a better choice for most of
- users, as it supports jitter correction and endianness,
- than the method proposed below.</para>
- </note>
-
- <step>
- <para>The ATAPI CD driver makes each track available as
- <filename>/dev/acddtnn</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;, making sure to
- specify a 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>. Specify that these are audio
- files, and that <command>burncd</command> should fixate
- the disk when finished:</para>
-
- <screen>&prompt.root; <userinput>burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate</userinput></screen>
- </step>
- </procedure>
- </sect2>
-
- <sect2 xml:id="imaging-cd">
- <title>Duplicating Data CDs</title>
-
- <para>It is possible to copy a data CD to an image file that is
- functionally equivalent to the image file created with
- &man.mkisofs.8;, and then use it to duplicate any data CD.
- The example given here assumes that the CD-ROM device is
- <filename>acd0</filename>. Substitute the correct CD-ROM
- device.</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/acd0 of=file.iso bs=2048</userinput></screen>
-
- <para>Now that there is an image, it can be burned to CD as
- described above.</para>
- </sect2>
-
- <sect2 xml:id="mounting-cd">
- <title>Using Data CDs</title>
-
- <para>It is possible to mount and read the data on a standard
- data CD. By default, &man.mount.8; assumes that a file system
- is of type <literal>ufs</literal>. Running this
- command:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/cd0 /mnt</userinput></screen>
-
- <para>will generate an error about <errorname>Incorrect super
- block</errorname>, and will fail to mount the CD. The CD
- does not use the <literal>UFS</literal> file system, so
- attempts to mount it as such will fail. Instead, tell
- &man.mount.8; that the file system is of type
- <literal>ISO9660</literal> by specifying
- <option>-t cd9660</option> to &man.mount.8;. For example,
- to mount the CD-ROM device, <filename>/dev/cd0</filename>,
- under <filename>/mnt</filename>,
- use:</para>
-
- <screen>&prompt.root; <userinput>mount -t cd9660 /dev/cd0 /mnt</userinput></screen>
-
- <para>Replace <filename>/dev/cd0</filename> with the device
- name for the CD device. Also, <option>-t cd9660</option>
- executes &man.mount.cd9660.8;, meaning the above command is
- equivalent to:</para>
-
- <screen>&prompt.root; <userinput>mount_cd9660 /dev/cd0 /mnt</userinput></screen>
-
- <para>While data CD-ROMs from any vendor can be mounted this
- way, disks with certain ISO 9660 extensions might behave
- oddly. For example, Joliet disks store all filenames in
- two-byte Unicode characters. The &os; 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, specify the local charset with
- <option>-C</option>. For more information, refer to
- &man.mount.cd9660.8;.</para>
-
- <note>
- <para>In order to do this character conversion with the help
- of <option>-C</option>, the kernel requires 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, <errorname>Device not configured</errorname>
- will be displayed when trying to mount a CD-ROM. This
- usually means that the CD-ROM 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 CD-ROM drive to realize
- that a media is present, so be patient.</para>
-
- <para>Sometimes, a SCSI CD-ROM may be missed because it did not
- have enough time to answer the bus reset. To resolve this,
- add the following option to the kernel configuration and
- <link linkend="kernelconfig-building">rebuild the
- kernel</link>.</para>
-
- <programlisting>options SCSI_DELAY=15000</programlisting>
-
- <para>This tells the SCSI bus to pause 15 seconds during boot,
- to give the CD-ROM drive every possible chance to answer the
- bus reset.</para>
- </sect2>
-
- <sect2 xml:id="rawdata-cd">
- <title>Burning Raw Data CDs</title>
-
- <para>It is possible to burn a file directly to CD, without
- creating an ISO 9660 file system. Some people do this for
- backup purposes. This command 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, the
- data must be read from the raw device node:</para>
-
- <screen>&prompt.root; <userinput>tar xzvf /dev/acd1</userinput></screen>
-
- <para>This type of disk can not be mounted as a normal CD-ROM
- and the data cannot be read under any operating system except
- &os;. In order to mount the CD, or to share the data with
- another operating system, &man.mkisofs.8; must be used as
- described above.</para>
- </sect2>
-
- <sect2 xml:id="atapicam">
- <info>
- <title>Using the ATAPI/CAM Driver</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Marc</firstname>
- <surname>Fonvieille</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>CD burner</primary>
- <secondary>ATAPI/CAM driver</secondary>
- </indexterm>
-
- <para>This driver allows ATAPI devices, such as CD/DVD drives,
- to be accessed through the SCSI subsystem, and so allows the
- use of applications like <package>sysutils/cdrdao</package> or
- &man.cdrecord.1;.</para>
-
- <para>To use this driver, add the following line to
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>atapicam_load="YES"</programlisting>
-
- <para>then, reboot the system.</para>
-
- <note>
- <para>Users who prefer to statically compile &man.atapicam.4;
- support into the kernel, should add this line to the
- kernel configuration file:</para>
-
- <programlisting>device atapicam</programlisting>
-
- <para>Ensure the following lines are still in the kernel
- configuration file:</para>
-
- <programlisting>device ata
-device scbus
-device cd
-device pass</programlisting>
-
- <para>Then rebuild, install the new kernel, and reboot the
- machine.</para>
- </note>
-
- <para>During the boot process, the 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 can now be accessed via the
- <filename>/dev/cd0</filename> device name. For example, to
- mount a CD-ROM on <filename>/mnt</filename>,
- type the following:</para>
-
- <screen>&prompt.root; <userinput>mount -t cd9660 /dev/cd0 /mnt</userinput></screen>
-
- <para>As <systemitem class="username">root</systemitem>, 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>In this example, <literal>1,0,0</literal> is the SCSI
- address to use with &man.cdrecord.1; and other SCSI
- applications.</para>
-
- <para>For more information about ATAPI/CAM and SCSI system,
- refer to &man.atapicam.4; and &man.cam.4;.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="creating-dvds">
- <info>
- <title>Creating and Using DVD Media</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Marc</firstname>
- <surname>Fonvieille</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- <authorgroup>
- <author>
- <personname>
- <firstname>Andy</firstname>
- <surname>Polyakov</surname>
- </personname>
- <contrib>With inputs from </contrib>
- </author>
- </authorgroup>
- </info>
-
- <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 the standard for video publishing.</para>
-
- <para>Five physical recordable formats can be defined for 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
- <link xlink:href="http://www.dvdforum.com/forum.shtml">DVD
- Forum</link>. 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 a rewritable format which can be seen
- as a removable hard drive. However, this media is not
- compatible with most DVD-ROM drives and DVD-Video players
- as only a few DVD writers support the DVD-RAM format.
- Refer to <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 <link xlink:href="http://www.dvdrw.com/">DVD+RW
- Alliance</link>. 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 as 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 such as DVD-R, DVD+R, or DVD-RW. Before
- choosing the type of media, ensure that both the burner and
- the DVD-Video player are compatible with the media under
- consideration.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Configuration</title>
-
- <para>To perform DVD recording, use &man.growisofs.1;. This
- command is part of the
- <package>sysutils/dvd+rw-tools</package> utilities which
- support all DVD media types.</para>
-
- <para>These tools use the SCSI subsystem to access the devices,
- therefore <link linkend="atapicam">ATAPI/CAM support</link>
- must be loaded or statically compiled into the kernel. This
- support is not needed if the burner uses the USB interface.
- Refer to <xref linkend="usb-disks"/> for more details
- on USB device configuration.</para>
-
- <para>DMA access must also be enabled for ATAPI devices, by
- adding the following line to
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>hw.ata.atapi_dma="1"</programlisting>
-
- <para>Before attempting to use
- <application>dvd+rw-tools</application>, consult the <link
- xlink:href="http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html">Hardware
- Compatibility Notes</link>.</para>
-
- <note>
- <para>For a graphical user interface, consider using
- <package>sysutils/k3b</package> 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>Since &man.growisofs.1; is a front-end to
- <link linkend="mkisofs">mkisofs</link>, it will invoke
- &man.mkisofs.8; to create the file system layout and perform
- the write on the DVD. This means that an image of the data
- does not need to be created before the burning process.</para>
-
- <para>To burn to a DVD+R or a DVD-R the data in
- <filename>/path/to/data</filename>,
- use the following command:</para>
-
- <screen>&prompt.root; <userinput>growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data</userinput></screen>
-
- <para>In this example, <option>-J -R</option> is passed to
- &man.mkisofs.8; to create an ISO 9660 file system with Joliet
- and Rock Ridge extensions. Refer to &man.mkisofs.8; for more
- details.</para>
-
- <para>For the initial session recording, <option>-Z</option> is
- used for both single and multiple sessions. Replace
- <replaceable>/dev/cd0</replaceable>, with the name of the DVD
- device. Using <option>-dvd-compat</option> indicates that the
- disk will be closed and that the recording will be
- unappendable. This should also provide better media
- compatibility with DVD-ROM drives.</para>
-
- <para>To burn a pre-mastered image, such as
- <replaceable>imagefile.iso</replaceable>, use:</para>
-
- <screen>&prompt.root; <userinput>growisofs -dvd-compat -Z /dev/cd0=imagefile.iso</userinput></screen>
-
- <para>The write speed should be detected and automatically set
- according to the media and the drive being used. To force the
- write speed, use <option>-speed=</option>. Refer to
- &man.growisofs.1; for example usage.</para>
-
- <note>
- <para>In order to support working files larger than 4.38GB, an
- UDF/ISO-9660 hybrid filesystem must be created by passing
- <option>-udf -iso-level 3</option> to &man.mkisofs.8; and
- all related programs, such as &man.growisofs.1;. This is
- required only when creating an ISO image file or when
- writing files directly to a disk. Since a disk created this
- way must be mounted as an UDF filesystem with
- &man.mount.udf.8;, it will be usable only on an UDF aware
- operating system. Otherwise it will look as if it contains
- corrupted files.</para>
-
- <para>To create this type of ISO file:</para>
-
- <screen>&prompt.user; <userinput>mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data</userinput></screen>
-
- <para>To burn files directly to a disk:</para>
-
- <screen>&prompt.root; <userinput>growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data</userinput></screen>
-
- <para>When an ISO image already contains large files, no
- additional options are required for &man.growisofs.1; to
- burn that image on a disk.</para>
-
- <para>Be sure to use an up-to-date version of
- <package>sysutils/cdrtools</package>, which contains
- &man.mkisofs.8;, as an older version may not contain large
- files support. If the latest version does not work, install
- <package>sysutils/cdrtools-devel</package> and read its
- &man.mkisofs.8;.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Burning a DVD-Video</title>
-
- <indexterm>
- <primary>DVD</primary>
- <secondary>DVD-Video</secondary>
- </indexterm>
-
- <para>A DVD-Video is a specific file layout based on the ISO
- 9660 and micro-UDF (M-UDF) specifications. Since DVD-Video
- presents a specific data structure hierarchy, a particular
- program such as <package>multimedia/dvdauthor</package> is
- needed to author the DVD.</para>
-
- <para>If an image of the DVD-Video file system already exists,
- it can be burned in the same way as any other image. If
- <command>dvdauthor</command> was used to make the DVD and the
- result is in <filename>/path/to/video</filename>, the
- following command should be used to burn the DVD-Video:</para>
-
- <screen>&prompt.root; <userinput>growisofs -Z /dev/cd0 -dvd-video /path/to/video</userinput></screen>
-
- <para><option>-dvd-video</option> is passed to &man.mkisofs.8;
- to instruct it to create a DVD-Video file system layout.
- This option implies the <option>-dvd-compat</option>
- &man.growisofs.1; option.</para>
- </sect2>
-
- <sect2>
- <title>Using a DVD+RW</title>
-
- <indexterm>
- <primary>DVD</primary>
- <secondary>DVD+RW</secondary>
- </indexterm>
-
- <para>Unlike CD-RW, a virgin DVD+RW needs to be formatted before
- first use. It is <emphasis>recommended</emphasis> to let
- &man.growisofs.1; take care of this automatically whenever
- appropriate. However, it is possible to use
- <command>dvd+rw-format</command> to format the DVD+RW:</para>
-
- <screen>&prompt.root; <userinput>dvd+rw-format /dev/cd0</userinput></screen>
-
- <para>Only perform this operation once and keep in mind that
- only virgin DVD+RW medias need to be formatted. Once
- formatted, the DVD+RW can be burned as usual.</para>
-
- <para>To burn a totally new file system and not just append some
- data onto a DVD+RW, the media does not need to be blanked
- first. Instead, write over the previous recording like
- this:</para>
-
- <screen>&prompt.root; <userinput>growisofs -Z /dev/cd0 -J -R /path/to/newdata</userinput></screen>
-
- <para>The DVD+RW format supports appending data to a previous
- recording. This operation consists of merging a new session
- to the existing one as it is not considered to be
- multi-session writing. &man.growisofs.1; will
- <emphasis>grow</emphasis> the ISO 9660 file system present on
- the media.</para>
-
- <para>For example, to append data to a DVD+RW, use the
- following:</para>
-
- <screen>&prompt.root; <userinput>growisofs -M /dev/cd0 -J -R /path/to/nextdata</userinput></screen>
-
- <para>The same &man.mkisofs.8; options used to burn the
- initial session should be used during next writes.</para>
-
- <note>
- <para>Use <option>-dvd-compat</option> for better media
- compatibility with DVD-ROM drives. When using DVD+RW, this
- option will not prevent the addition of data.</para>
- </note>
-
- <para>To blank the media, use:</para>
-
- <screen>&prompt.root; <userinput>growisofs -Z /dev/cd0=/dev/zero</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Using a DVD-RW</title>
-
- <indexterm>
- <primary>DVD</primary>
- <secondary>DVD-RW</secondary>
- </indexterm>
-
- <para>A DVD-RW accepts two disc formats: incremental sequential
- and restricted overwrite. By default, DVD-RW discs are in
- sequential format.</para>
-
- <para>A virgin DVD-RW can be directly written without being
- formatted. However, a non-virgin DVD-RW in sequential format
- needs to be blanked before writing a new initial
- session.</para>
-
- <para>To blank a DVD-RW in sequential mode:</para>
-
- <screen>&prompt.root; <userinput>dvd+rw-format -blank=full /dev/cd0</userinput></screen>
-
- <note>
- <para>A full blanking using <option>-blank=full</option> will
- take about one hour on a 1x media. A fast blanking can be
- performed using <option>-blank</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 /dev/cd0=imagefile.iso</userinput></screen>
-
- <para>Since &man.growisofs.1; automatically attempts to detect
- fast blanked media and engage DAO write,
- <option>-use-the-force-luke=dao</option> should not be
- required.</para>
-
- <para>One should instead use restricted overwrite mode with
- any DVD-RW as this format is more flexible than the default
- of incremental sequential.</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 /dev/cd0 -J -R /path/to/data</userinput></screen>
-
- <para>To append some data to a previous recording, use
- <option>-M</option> with &man.growisofs.1;. However, if data
- is appended 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. Instead, overwrite
- the disc with <option>-Z</option>. It is also possible to
- grow an existing ISO 9660 file system written on the disc with
- <option>-M</option>. The result will be a one-session
- DVD.</para>
-
- <para>To put a DVD-RW in restricted overwrite format, the
- following command must be used:</para>
-
- <screen>&prompt.root; <userinput>dvd+rw-format /dev/cd0</userinput></screen>
-
- <para>To change back to sequential format, use:</para>
-
- <screen>&prompt.root; <userinput>dvd+rw-format -blank=full /dev/cd0</userinput></screen>
- </sect2>
-
- <sect2>
- <title>Multi-Session</title>
-
- <para>Few DVD-ROM drives support multi-session DVDs and most of
- the time 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 /dev/cd0 -J -R /path/to/nextdata</userinput></screen>
-
- <para>Using this command with a DVD+RW or a DVD-RW in restricted
- overwrite mode will append data while merging the new session
- to the existing one. The result will be a single-session
- disc. Use this method to add data after an initial write on
- these types of media.</para>
-
- <note>
- <para>Since some space on the media is used between each
- session to mark the end and start of sessions, one should
- add sessions with a 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, use
- <command>dvd+rw-mediainfo
- /dev/cd0</command> while the disc
- in the specified drive.</para>
-
- <para>More information about
- <application>dvd+rw-tools</application> can be found in
- &man.growisofs.1;, on the <link
- xlink:href="http://fy.chalmers.se/~appro/linux/DVD+RW/">dvd+rw-tools
- web site</link>, and in the <link
- xlink:href="http://lists.debian.org/cdwrite/">cdwrite
- mailing list</link> archives.</para>
-
- <note>
- <para>When creating a problem report related to the use of
- <application>dvd+rw-tools</application>, always include the
- output of <command>dvd+rw-mediainfo</command>.</para>
- </note>
- </sect2>
-
- <sect2 xml: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 can use either a SCSI or ATAPI
- interface. For ATAPI devices, DMA access has to be
- enabled by adding the following line to
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>hw.ata.atapi_dma="1"</programlisting>
- </sect3>
-
- <sect3>
- <title>Preparing the Media</title>
-
- <para>A DVD-RAM can be seen as a removable hard drive. Like
- any other hard drive, the DVD-RAM must be formatted before
- it can be used. In this example, the whole disk space will
- be formatted with a standard UFS2 file system:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/acd0 bs=2k count=1</userinput>
-&prompt.root; <userinput>bsdlabel -Bw acd0</userinput>
-&prompt.root; <userinput>newfs /dev/acd0</userinput></screen>
-
- <para>The DVD device, <filename>acd0</filename>, must be
- changed according to the configuration.</para>
- </sect3>
-
- <sect3>
- <title>Using the Media</title>
-
- <para>Once the DVD-RAM has been formatted, it can be mounted
- as a normal hard drive:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/acd0 /mnt</userinput></screen>
-
- <para>Once mounted, the DVD-RAM will be both readable and
- writeable.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="floppies">
- <info>
- <title>Creating and Using Floppy Disks</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Julio</firstname>
- <surname>Merino</surname>
- </personname>
- <contrib>Original work by </contrib>
- </author>
- </authorgroup>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Martin</firstname>
- <surname>Karlsson</surname>
- </personname>
- <contrib>Rewritten by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <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 explains how to use floppy disks in &os;. It
- covers 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/fdN</filename>.</para>
- </sect3>
-
- <sect3>
- <title>Formatting</title>
-
- <para>A floppy disk needs to be low-level formatted 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 other disk sizes, 1440kB is what
- most floppy disks are designed for.</para>
-
- <para>To low-level format the floppy disk, 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>To format the floppy, insert a new 3.5inch floppy
- disk into the first floppy 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, a disk label needs to
- placed 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.</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>To write the disk label, use &man.bsdlabel.8;:</para>
-
- <screen>&prompt.root; <userinput>/sbin/bsdlabel -B -w /dev/fd0 fd1440</userinput></screen>
- </sect2>
-
- <sect2>
- <title>The File System</title>
-
- <para>The floppy is now ready to be high-level formatted. This
- will place a new file system on it so that &os; can read and
- write to the disk. Since creating the new file system
- destroys the disk label, the disk label needs to be recreated
- whenever the disk is reformatted.</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
- <package>emulators/mtools</package> from the
- Ports Collection.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="backups-tapebackups">
- <title>Creating and Using Data Tapes</title>
-
- <indexterm><primary>tape media</primary></indexterm>
-
- <para>Tape technology has continued to evolve but is less likely
- to be used in a modern system. Modern backup systems tend to
- use off site combined with local removable disk drive
- technologies. Still, &os; will support any tape drive that
- uses SCSI, such as LTO and older devices such as DAT. There is
- limited support for SATA and USB tape drives.</para>
-
- <sect2 xml:id="tapes-sa0">
- <title>Serial Access with &man.sa.4;</title>
-
- <indexterm>
- <primary>tape drives</primary>
- </indexterm>
-
- <para>&os; uses the &man.sa.4; driver, providing
- <filename>/dev/sa0</filename>,
- <filename>/dev/nsa0</filename>, and
- <filename>/dev/esa0</filename>. In normal use, only
- <filename>/dev/sa0</filename> is needed.
- <filename>/dev/nsa0</filename> is the same physical drive
- as <filename>/dev/sa0</filename> but does not rewind the
- tape after writing a file. This allows writing more than one
- file to a tape. Using <filename>/dev/esa0</filename>
- ejects the tape after the device is closed, if
- applicable.</para>
- </sect2>
-
- <sect2>
- <title xml:id="tapes-mt">Controlling the Tape Drive with
- &man.mt.1;</title>
-
- <indexterm>
- <primary>tape media</primary>
- <secondary>mt</secondary>
- </indexterm>
-
- <para>&man.mt.1; is the &os; utility for controlling other
- operations of the tape drive, such as seeking through files on
- a tape or writing tape control marks to the tape.</para>
-
- <para>For example, the first three files on a tape can be
- preserved by skipping past them before writing a new
- file:</para>
-
- <screen>&prompt.root; <userinput>mt -f /dev/nsa0 fsf 3</userinput></screen>
- </sect2>
-
- <sect2>
- <title xml:id="tapes-tar">Using &man.tar.1; to Read and
- Write Tape Backups</title>
-
- <para>An example of writing a single file to tape using
- &man.tar.1;:</para>
-
- <screen>&prompt.root; <userinput>tar cvf /dev/sa0 file</userinput></screen>
-
- <para>Recovering files from a &man.tar.1; archive on tape into
- the current directory:</para>
-
- <screen>&prompt.root; <userinput>tar xvf /dev/sa0</userinput></screen>
- </sect2>
-
- <sect2>
- <title xml:id="tapes-dumprestore">Using &man.dump.8; and
- &man.restore.8; to Create and Restore Backups</title>
-
- <para>A simple backup of <filename>/usr</filename> with
- &man.dump.8;:</para>
-
- <screen>&prompt.root; <userinput>dump -0aL -b64 -f /dev/nsa0 /usr</userinput></screen>
-
- <para>Interactively restoring files from a &man.dump.8; file on
- tape into the current directory:</para>
-
- <screen>&prompt.root; <userinput>restore -i -f /dev/nsa0</userinput></screen>
- </sect2>
-
- <sect2>
- <title xml:id="tapes-othersofware">Other Tape Software</title>
-
- <para>Higher-level programs are available to simplify tape
- backup. The most popular are
- <application>Amanda</application> and
- <application>Bacula</application>. These programs aim to make
- backups easier and more convenient, or to automate complex
- backups of multiple machines. The Ports Collection contains
- both these and other tape utility applications.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="backup-strategies">
- <info>
- <title>Backup Strategies</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Lowell</firstname>
- <surname>Gilbert</surname>
- </personname>
- <contrib>Original work by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <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, say by fire, including
- destruction of any on-site backups.</para>
- </listitem>
- </itemizedlist>
-
- <para>Some systems will be best served by having each of these
- problems covered by a completely different technique. Except
- for strictly personal systems with low-value data, it is
- unlikely that one technique will cover all of them.</para>
-
- <para>Some possible techniques include:</para>
-
- <itemizedlist>
- <listitem>
- <para>Archives of the whole system, backed up onto permanent,
- off-site media. This provides protection against all of the
- problems listed above, but is slow and inconvenient to
- restore from. Copies of the backups can be stored on site
- or online, but there will still be inconveniences in
- restoring files, especially for non-privileged users.</para>
- </listitem>
-
- <listitem>
- <para>Filesystem snapshots, which are really only helpful in
- the accidental file deletion scenario, but can be
- <emphasis>very</emphasis> helpful in that case, as well as
- quick and easy to deal with.</para>
- </listitem>
-
- <listitem>
- <para>Copies of whole file systems or disks which can be
- created with a periodic <package>net/rsync</package> of the
- whole machine. This is generally most useful in networks
- with unique requirements. For general protection against
- disk failure, this is usually inferior to
- <acronym>RAID</acronym>. For restoring accidentally deleted
- files, it can be comparable to <acronym>UFS</acronym>
- snapshots.</para>
- </listitem>
-
- <listitem>
- <para><acronym>RAID</acronym>, which minimizes or avoids
- downtime when a disk fails at the expense of having to deal
- with disk failures more often, because there are more disks,
- albeit at a much lower urgency.</para>
- </listitem>
-
- <listitem>
- <para>Checking fingerprints of files using &man.mtree.8;.
- Although this is not a backup, this technique indicates
- when one needs to resort to 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 more techniques, many
- of them variations on the ones listed above. Specialized
- requirements 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 which dangers should be protected
- against, and how each will be handled.</para>
- </sect1>
-
- <sect1 xml:id="backup-basics">
- <title>Backup Basics</title>
-
- <para>The major backup programs built into &os; are
- &man.dump.8;, &man.tar.1;, &man.cpio.1;, and
- &man.pax.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. Unlike other backup software,
- <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,
- but rather writes the raw data blocks that comprise files and
- directories. When used to extract data,
- <command>restore</command> stores temporary files in
- <filename>/tmp/</filename> by default. When using a recovery
- disk with a small <filename>/tmp</filename>, set
- <envar>TMPDIR</envar> to a directory with more free space in
- order for the restore to succeed.</para>
-
- <note>
- <para>If <command>dump</command> is used on the root
- directory, it will 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 <filename>.rhosts</filename> on
- the remote computer. The arguments to
- <command>rdump</command> and <command>rrestore</command> must
- be suitable to use on the remote computer. For example, to
- <command>rdump</command> from a &os; computer to an Exabyte
- tape drive connected to a host called
- <systemitem>komodo</systemitem>, use:</para>
-
- <screen>&prompt.root; <userinput>/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2&gt;&amp;1</userinput></screen>
-
- <para>There are security implications to allowing
- <filename>.rhosts</filename> authentication, so use
- with caution.</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, use the built-in <envar>RSH</envar>:</para>
-
- <example>
- <title>Using <command>dump</command> over
- <application>ssh</application> with <envar>RSH</envar>
- Set</title>
-
- <screen>&prompt.root; <userinput>env 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 and 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>To <command>tar</command> to an Exabyte tape drive
- connected to a host called
- <systemitem>komodo</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>tar cf - . | rsh komodo dd of=tape-device obs=20b</userinput></screen>
-
- <para>When backing up over an insecure network, instead use
- <command>ssh</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> includes
- options 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>Since <command>cpio</command> does not support backups
- across the network, use a pipeline and <command>ssh</command>
- to send the data to a remote tape drive.</para>
-
- <screen>&prompt.root; <userinput>for f in directory_list; do</userinput>
-<userinput>find $f &gt;&gt; backup.list</userinput>
-<userinput>done</userinput>
-&prompt.root; <userinput>cpio -v -o --format=newc &lt; backup.list | ssh user@host "cat &gt; backup_device"</userinput></screen>
-
- <para>Where <replaceable>directory_list</replaceable> is the
- list of directories 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, such as
- <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 the IEEE/&posix; answer to
- <command>tar</command> and <command>cpio</command>. Over the
- years the various versions of <command>tar</command> and
- <command>cpio</command> have become 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 xml: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 by using
- 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 grained 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 not installed by
- but is available as either a port or package.</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 data is worth little to nothing, then
- <quote>Do nothing</quote> is the most suitable backup program
- for the computer. But beware, &os; is a useful tool and
- over time it can be used to create a valuable collection of
- files.</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 the computer.
- An example is the files that comprise the HTML or &postscript;
- version of this Handbook. These document formats have been
- created from XML input files. Creating backups of the HTML or
- &postscript; files is not necessary if the XML 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
- <link
- xlink:href="http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html">torture-testing
- Backup and Archive Programs</link>.</para>
- </sect2>
-
- <sect2>
- <title>Emergency Restore Procedure</title>
-
- <sect3>
- <title>Before the Disaster</title>
-
- <para>There are four steps which should be performed in
- preparation for any disaster that may occur.</para>
- <indexterm>
- <primary><command>bsdlabel</command></primary>
- </indexterm>
-
- <para>First, print the bsdlabel of each disk using a command
- such as <command>bsdlabel da0 | lpr</command>. Also print a
- copy of <filename>/etc/fstab</filename> and all boot
- messages.</para>
-
- <indexterm><primary>livefs CD</primary></indexterm>
- <para>Second, burn a <quote>livefs</quote> CD. This CD
- contains support for booting into a &os;
- <quote>livefs</quote> rescue mode, allowing the user to
- perform many tasks like running &man.dump.8;,
- &man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;,
- &man.newfs.8;, &man.mount.8;, and more. The livefs CD image
- for &os;/&arch.i386;&nbsp;&rel2.current;-RELEASE is
- available from <uri
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel2.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-livefs.iso">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel2.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-livefs.iso</uri>.</para>
-
- <note>
- <para>Livefs CD images are not available for
- &os;&nbsp;&rel.current;-RELEASE and later. In addition to
- the CD-ROM installation images, flash drive installation
- images may be used to recover a system. The
- <quote>memstick</quote> image for
- &os;/&arch.i386;&nbsp;&rel.current;-RELEASE is available
- from <uri
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img</uri>.</para>
- </note>
-
- <para>Third, create backup tapes regularly. Any changes that
- made after the last backup may be irretrievably lost.
- Write-protect the backup media.</para>
-
- <para>Fourth, test the <quote>livefs</quote> CD and the
- backups. Make notes of the procedure. Store these notes
- with the CD, the printouts, and the backups. These notes
- may prevent the inadvertent destruction of the backups while
- under the stress of performing an emergency
- recovery.</para>
-
- <para>For an added measure of security, store an extra
- <quote>livefs</quote> CD and the latest backup at a
- remote location, where a remote location is
- <emphasis>not</emphasis> the basement of the same building.
- A remote location should be physically separated from the
- computers and disk drives by a significant distance.</para>
- </sect3>
-
- <sect3>
- <title>After the Disaster</title>
-
- <para>First, determine if the hardware survived. Thanks
- to regular, off-site backups, 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 the hardware is okay, insert the
- <quote>livefs</quote> CD and boot the computer. The
- original install menu will be displayed on the screen.
- Select the correct country, then choose
- <guimenuitem>Fixit -- Repair mode with CD-ROM/DVD/floppy or
- start a shell.</guimenuitem> then select
- <guimenuitem>CD-ROM/DVD -- Use the live filesystem
- CD-ROM/DVD</guimenuitem>.
- <command>restore</command> and the other needed programs
- are located in <filename>/mnt2/rescue</filename>.</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> the root partition
- of the first disk using <command>mount /dev/da0a
- /mnt</command>. If the bsdlabel was damaged, use
- <command>bsdlabel</command> to re-partition and label the
- disk to match the label that was printed and saved. Use
- <command>newfs</command> to re-create the file systems.
- Re-mount the root partition of the disk read-write using
- <command>mount -u -o rw /mnt</command>. Use the backups
- to recover the data for this file system. Unmount the file
- system with <command>umount /mnt</command>. Repeat for each
- file system that was damaged.</para>
-
- <para>Once the system is running, backup the data onto new
- media as whatever caused the crash or data loss may strike
- again. Another hour spent now may save further distress
- later.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="disks-virtual">
- <info>
- <title>Network, Memory, and File-Backed File Systems</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Marc</firstname>
- <surname>Fonvieille</surname>
- </personname>
- <contrib>Reorganized and enhanced by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm><primary>virtual disks</primary></indexterm>
- <indexterm>
- <primary>disks</primary>
- <secondary>virtual</secondary>
- </indexterm>
-
- <para>In addition to physical disks such as floppies, CDs, and
- hard drives, &os; also supports
- <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 &os; version, the tools used for the
- creation and use of file-backed and memory-based file systems
- differ.</para>
-
- <note>
- <para>Use &man.devfs.5; to allocate device nodes transparently
- for the user.</para>
- </note>
-
- <sect2 xml:id="disks-mdconfig">
- <title>File-Backed File System</title>
-
- <indexterm>
- <primary>disks</primary>
- <secondary>file-backed</secondary>
- </indexterm>
-
- <para>&man.mdconfig.8; is used to configure and enable memory
- disks, &man.md.4;, under &os;. To use &man.mdconfig.8;,
- &man.md.4; must be first loaded. When using a custom kernel
- configuration file, ensure it includes this line:</para>
-
- <programlisting>device md</programlisting>
-
- <para>&man.mdconfig.8; supports several types of memory backed
- virtual disks: memory disks allocated with &man.malloc.9; and
- memory disks using a file or swap space as backing. One
- possible use is the mounting of CD images.</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 diskimage -u 0</userinput>
-&prompt.root; <userinput>mount /dev/md0 /mnt</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=newimage bs=1k count=5k</userinput>
-5120+0 records in
-5120+0 records out
-&prompt.root; <userinput>mdconfig -a -t vnode -f newimage -u 0</userinput>
-&prompt.root; <userinput>bsdlabel -w md0 auto</userinput>
-&prompt.root; <userinput>newfs md0a</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/md0a /mnt</userinput>
-&prompt.root; <userinput>df /mnt</userinput>
-Filesystem 1K-blocks Used Avail Capacity Mounted on
-/dev/md0a 4710 4 4330 0% /mnt</screen>
- </example>
-
- <para>If unit number is not specified with
- <option>-u</option>, &man.mdconfig.8; uses the
- &man.md.4; automatic allocation to select an unused device.
- The name of the allocated unit will be output to stdout, such
- as <filename>md4</filename>. Refer to &man.mdconfig.8;
- for more details about.</para>
-
- <para>While &man.mdconfig.8; is useful, it takes several
- command lines to create a file-backed file system. &os; also
- comes with &man.mdmfs.8; which automatically 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, to create and mount the same file system image as
- above, 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=newimage bs=1k count=5k</userinput>
-5120+0 records in
-5120+0 records out
-&prompt.root; <userinput>mdmfs -F newimage -s 5m md0 /mnt</userinput>
-&prompt.root; <userinput>df /mnt</userinput>
-Filesystem 1K-blocks Used Avail Capacity Mounted on
-/dev/md0 4718 4 4338 0% /mnt</screen>
- </example>
-
- <para>When <option>md</option> is used without a unit number,
- &man.mdmfs.8; uses the &man.md.4; auto-unit feature to
- automatically select an unused device. For more details
- about &man.mdmfs.8;, refer to its manual page.</para>
- </sect2>
-
- <sect2 xml: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, <quote>swap
- backing</quote> should normally be used. This does not mean
- that the memory disk will be swapped out to disk by default,
- but rather 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 disks which are
- &man.malloc.9; backed, but using large malloc backed memory
- disks 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 5m -u 1</userinput>
-&prompt.root; <userinput>newfs -U md1</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/md1 /mnt</userinput>
-&prompt.root; <userinput>df /mnt</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 5m md2 /mnt</userinput>
-&prompt.root; <userinput>df /mnt</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 no
- longer in use, its resources should be released back to
- the system. First, 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 4</userinput></screen>
-
- <para>It is possible to list information about configured
- &man.md.4; devices by running
- <command>mdconfig -l</command>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="snapshots">
- <info>
- <title>File System Snapshots</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Tom</firstname>
- <surname>Rhodes</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>file systems</primary>
- <secondary>snapshots</secondary>
- </indexterm>
-
- <para>&os; offers a feature in conjunction with
- <link linkend="soft-updates">Soft Updates</link>: file system
- snapshots.</para>
-
- <para>UFS 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 using &man.rm.1;. While snapshots may be removed in
- any order, 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.
- &man.unlink.1; makes an exception for snapshot files since it
- allows them to be removed.</para>
-
- <para>Snapshots are created using &man.mount.8;. 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, use &man.mksnap.ffs.8; to create the
- snapshot:</para>
-
- <screen>&prompt.root; <userinput>mksnap_ffs /var /var/snapshot/snap</userinput></screen>
-
- <para>One can find snapshot files on a file system, such as
- <filename>/var</filename>, using
- &man.find.1;:</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 transferred 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, this should always provide a
- clean and unchanging result.</para>
- </listitem>
-
- <listitem>
- <para>Running &man.dump.8; on the snapshot will produce a dump
- file 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 by using <option>-L</option>.</para>
- </listitem>
-
- <listitem>
- <para>The snapshot can be mounted 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>The frozen <filename>/var</filename> is now available
- through <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. To unmount the snapshot, use:</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, visit
- Marshall Kirk McKusick's website at <uri
- xlink:href="http://www.mckusick.com/">http://www.mckusick.com/</uri>.</para>
- </sect1>
-
- <sect1 xml: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
- can be used to limit the amount of disk space 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 prevents one user or
- group of users from consuming all of the available disk
- space.</para>
-
- <sect2>
- <title>Configuring the System to Enable Disk Quotas</title>
-
- <para>Before using disk quotas, quota support must be added to
- the kernel by adding the following line to the kernel
- configuration file:</para>
-
- <programlisting>options QUOTA</programlisting>
-
- <para>Before &os;&nbsp;9.2, the <filename>GENERIC</filename>
- kernel usually did not include this option.
- <command>sysctl kern.features.ufs_quota</command> can be used
- to test whether the current kernel supports quotas. If the
- option is not present, a custom kernel must be compiled.
- Refer to <xref linkend="kernelconfig"/> for more information
- on kernel configuration.</para>
-
- <para>Next, enable disk quotas in
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>quota_enable="YES"</programlisting>
-
- <indexterm>
- <primary>disk quotas</primary>
- <secondary>checking</secondary>
- </indexterm>
- <para>For finer control over quota startup, an additional
- configuration variable is available. Normally on bootup, the
- quota integrity of each file system is checked by
- &man.quotacheck.8;. This program insures that the data in the
- quota database properly reflects the data on the file system.
- This is a time consuming process that will significantly
- affect the time the system takes to boot. To skip this step,
- add this variable to <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>check_quotas="NO"</programlisting>
-
- <para>Finally, edit <filename>/etc/fstab</filename> to enable
- disk quotas on a per-file system basis. This is when user or
- group quotas can be enabled on the file systems.</para>
-
- <para>To enable per-user quotas on a file system, add
- <option>userquota</option> to the options field in the
- <filename>/etc/fstab</filename> entry for the file system to
- enable quotas on. For example:</para>
-
- <programlisting>/dev/da1s2g /home ufs rw,userquota 1 2</programlisting>
-
- <para>To enable group quotas, instead use
- <option>groupquota</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 as
- <filename>quota.user</filename> and
- <filename>quota.group</filename>. Refer to &man.fstab.5; for
- more information. Even though an alternate location for the
- quota files can be specified, this is not recommended because
- the various quota utilities do not seem to handle this
- properly.</para>
-
- <para>Once the configuration is complete, reboot the system
- with the new kernel. <filename>/etc/rc</filename> will
- automatically run the appropriate commands to create the
- initial quota files for all of the quotas enabled in
- <filename>/etc/fstab</filename>. There is no need to
- manually create any zero length quota files.</para>
-
- <para>In the normal course of operations, there should be no
- need to manually run &man.quotacheck.8;, &man.quotaon.8;, or
- &man.quotaoff.8;. However, one should read their manual pages
- 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 the system has been configured to enable quotas,
- verify they really are enabled by running:</para>
-
- <screen>&prompt.root; <userinput>quota -v</userinput></screen>
-
- <para>There should be a one line summary of disk usage and
- current quota limits for each file system that quotas are
- enabled on.</para>
-
- <para>The system is now ready to be assigned quota limits with
- &man.edquota.8;.</para>
-
- <para>Several options are available to enforce limits on the
- amount of disk space a user or group may allocate, and how
- many files they may create. Allocations can be limited based
- on disk space (block quotas), number of files (inode quotas),
- or a combination of both. Each limits is 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 a
- hard limit, no further allocations can be made on that file
- system by that user. 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 can be exceeded for a limited amount of time,
- known as the grace period, which is one week by default. If a
- user stays over their limit longer than the grace period, the
- soft limit turns into a hard limit and no further allocations
- are allowed. When the user drops back below the soft limit,
- the grace period is reset.</para>
-
- <para>The following is an example output from &man.edquota.8;.
- When &man.edquota.8; is invoked, the editor specified by
- <envar>EDITOR</envar> is opened in order to edit the quota
- limits. The default editor is set to
- <application>vi</application>.</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>There are normally two lines for each file system that
- has quotas enabled. One line represents the block limits and
- the other represents the inode limits. Change the value 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 take affect upon exiting the
- editor.</para>
-
- <para>Sometimes it is desirable to set quota limits on a range
- of UIDs. This can be done by passing <option>-p</option> to
- &man.edquota.8;. First, assign the desired quota limit to a
- user, then run
- <command>edquota -p protouser startuid-enduid</command>. For
- example, if <systemitem class="username">test</systemitem> has
- the desired quota limits, the following command will 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, refer to &man.edquota.8;.</para>
- </sect2>
-
- <sect2>
- <title>Checking Quota Limits and Disk Usage</title>
-
- <indexterm>
- <primary>disk quotas</primary>
- <secondary>checking</secondary>
- </indexterm>
-
- <para>Either &man.quota.1; or &man.repquota.8; can be used to
- check quota limits and disk usage. To check individual user
- or group quotas and disk usage, use &man.quota.1;. A user
- may only examine their own quota and the quota of a group they
- are a member of. Only the superuser may view all user and
- group quotas. To get a summary of all quotas and disk usage
- for file systems with quotas enabled, use
- &man.repquota.8;.</para>
-
- <para>The following is sample output from
- <command>quota -v</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>In this example, the user is currently 15 kbytes over the
- soft limit of 50 kbytes on <filename>/usr</filename> and has 5
- days of grace period left. The asterisk <literal>*</literal>
- indicates that the user is currently over the quota
- limit.</para>
-
- <para>Normally, file systems that the user is not using any disk
- space on will not show in the output of &man.quota.1;, even if
- the user has a quota limit assigned for that file system. Use
- <option>-v</option> to display those file systems, such as
- <filename>/usr/var</filename> 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 &man.quota.1; 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>service inetd restart</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml:id="disks-encrypting">
- <info>
- <title>Encrypting Disk Partitions</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Lucky</firstname>
- <surname>Green</surname>
- </personname>
- <contrib>Contributed by </contrib>
- <affiliation>
- <address>
- <email>shamrock@cypherpunks.to</email>
- </address>
- </affiliation>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>disks</primary>
- <secondary>encrypting</secondary>
- </indexterm>
-
- <para>&os; offers excellent online protections against
- unauthorized data access. File permissions and
- <link linkend="mac">Mandatory Access Control</link> (MAC) help
- prevent unauthorized users 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 move the computer's hard drive to another system to copy and
- analyze the data.</para>
-
- <para>Regardless of how an attacker may have come into possession
- of a hard drive or powered-down computer, both the GEOM Based
- Disk Encryption (<command>gbde</command>) 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>
- <para>Configuring <application>gbde</application> requires
- superuser privileges.</para>
-
- <screen>&prompt.user; <userinput>su -</userinput>
-Password:</screen>
- </step>
-
- <step>
- <para>If using a custom kernel configuration file, ensure it
- contains this line:</para>
-
- <para><literal>options GEOM_BDE</literal></para>
-
- <para>If the kernel already contains this support, 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 demonstrates adding a new hard
- drive to a 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> and
- <filename>/dev/ad0s1*</filename>
- represents the existing standard &os; partitions.</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 <command>gbde</command>
- 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 <command>gbde</command>
- 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.lock</userinput></screen>
-
- <para>&man.gbde.8; will open the default editor, in order
- to set various configuration options in a template. For
- use with UFS1 or UFS2, set the sector_size to
- 2048:</para>
-
- <programlisting># &dollar;FreeBSD: src/sbin/gbde/template.txt,v 1.1.36.1 2009/08/03 08:13:06 kensmith 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 the user twice to type the
- passphrase used to secure the data. The passphrase must
- be the same both times. The ability of
- <application>gbde</application> to protect data depends
- entirely on the quality of the passphrase. For tips on
- how to select a secure passphrase that is easy to
- remember, see the <link
- xlink:href="http://world.std.com/~reinhold/diceware.html">Diceware
- Passphrase</link> website.</para>
-
- <para><command>gbde init</command>creates a lock file for
- the <application>gbde</application> partition. In this
- example, it is stored as
- <filename>/etc/gbde/ad4s1c.lock</filename>.
- <application>gbde</application> lock files must end in
- <quote>.lock</quote> in order to be correctly detected
- by the <filename>/etc/rc.d/gbde</filename> start up
- script.</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;.</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.lock</userinput></screen>
-
- <para>This command will prompt to input the passphrase
- that was selected during the initialization of the
- encrypted partition. The new encrypted device will
- appear 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, a file system can be created on the device using
- &man.newfs.8;. This example creates a UFS2 file
- system with soft updates enabled.</para>
-
- <screen>&prompt.root; <userinput>newfs -U /dev/ad4s1c.bde</userinput></screen>
-
- <note>
- <para>&man.newfs.8; must be performed on an attached
- <application>gbde</application> partition which is
- identified by a
- <filename>*.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
- <systemitem class="username">root</systemitem>.</para>
-
- <procedure>
- <step>
- <title>Attach the <command>gbde</command> Partition to the
- Kernel</title>
-
- <screen>&prompt.root; <userinput>gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c.lock</userinput></screen>
-
- <para>This command will prompt for the passphrase that was
- 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;:</para>
-
- <programlisting>gbde_autoattach_all="YES"
-gbde_devices="ad4s1c"
-gbde_lockdir="/etc/gbde"</programlisting>
-
- <para>This requires 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 useful when using
- <application>gbde</application> on laptops.</para>
- </sect4>
- </sect3>
-
- <sect3>
- <title>Cryptographic Protections Employed by
- <command>gbde</command></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 the
- cryptographic design, including how the sector keys are
- derived from the user-supplied passphrase, refer to
- &man.gbde.4;.</para>
- </sect3>
-
- <sect3>
- <title>Compatibility Issues</title>
-
- <para>&man.sysinstall.8; is incompatible with
- <application>gbde</application>-encrypted devices. All
- <filename>*.bde</filename>
- 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
- the example, use the following command:</para>
-
- <screen>&prompt.root; <userinput>gbde detach /dev/ad4s1c</userinput></screen>
-
- </sect3>
- </sect2>
-
- <sect2>
- <info>
- <title>Disk Encryption with <command>geli</command></title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Daniel</firstname>
- <surname>Gerzo</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <para>An alternative cryptographic GEOM class is available
- through &man.geli.8;. <command>geli</command> differs from
- <command>gbde</command>; offers different features, and uses
- a different scheme for doing cryptographic work.</para>
-
- <para>&man.geli.8; provides the following features:</para>
-
- <itemizedlist>
- <listitem>
- <para>Utilizes the &man.crypto.9; framework and, when
- cryptographic hardware is available,
- <command>geli</command> uses it automatically.</para>
- </listitem>
-
- <listitem>
- <para>Supports multiple cryptographic algorithms such as
- 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 system boot.</para>
- </listitem>
-
- <listitem>
- <para>Allows the use of two independent keys such as a
- <quote>key</quote> and a
- <quote>company key</quote>.</para>
- </listitem>
-
- <listitem>
- <para><command>geli</command> is fast as it performs simple
- sector-to-sector encryption.</para>
- </listitem>
-
- <listitem>
- <para>Allows backup and restore of master keys. If a user
- destroys their keys, it is still possible to get access
- to the data by restoring keys from the backup.</para>
- </listitem>
-
- <listitem>
- <para>Allows a disk to attach with a random, one-time key
- which is useful for swap partitions and temporary file
- systems.</para>
- </listitem>
- </itemizedlist>
-
- <para>More <command>geli</command> features can be found in
- &man.geli.8;.</para>
-
- <para>This section describes how to enable support for
- <command>geli</command> in the &os; kernel and explains how
- to create and use a <command>geli</command> encryption
- provider.</para>
-
- <para>Superuser privileges are required since modifications
- to the kernel are necessary.</para>
-
- <procedure>
- <step>
- <title>Adding <command>geli</command> Support to the
- Kernel</title>
-
- <para>For a custom kernel, ensure the kernel configuration
- file contains these lines:</para>
-
- <programlisting>options GEOM_ELI
-device crypto</programlisting>
-
- <para>Alternatively, the <command>geli</command> module can
- be loaded at boot time by adding the following line to
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>geom_eli_load="YES"</programlisting>
-
- <para>&man.geli.8; should now be supported by the
- kernel.</para>
- </step>
-
- <step>
- <title>Generating the Master Key</title>
-
- <para>The following example describes how to generate a
- key file which will be used as part of the master key for
- the encrypted provider mounted under
- <filename>/private</filename>. The key
- file will provide some random data used to encrypt the
- master key. The master key will also be protected by a
- passphrase. The provider's sector size will be 4kB.
- The example will describe how to attach to the
- <command>geli</command> provider, create a file system on
- it, mount it, work with it, and finally, how to detach
- it.</para>
-
- <para>It is recommended to use a bigger sector size, such as
- 4kB, for better performance.</para>
-
- <para>The master key will be protected with a passphrase and
- the data source for the key file will be
- <filename>/dev/random</filename>. The sector size of
- the provider <filename>/dev/da2.eli</filename> 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 to use both a passphrase and a key
- file as either method of securing the master key can be
- used in isolation.</para>
-
- <para>If the 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/da2.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 now be visible to
- &man.df.1; and be available for use:</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>/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 its 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>
-
- <programlisting>geli_devices="da2"
-geli_da2_flags="-p -k /root/da2.key"</programlisting>
-
- <para>This configures <filename>/dev/da2</filename> as a
- <command>geli</command> provider of which the master key
- file is located in <filename>/root/da2.key</filename>.
- <command>geli</command> will not use a passphrase when
- attaching to the provider if
- <option>-P</option> was given during the
- <literal>geli init</literal> 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 xml:id="swap-encrypting">
- <info>
- <title>Encrypting Swap Space</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Christian</firstname>
- <surname>Br&uuml;ffer</surname>
- </personname>
- <contrib>Written by </contrib>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>swap</primary>
- <secondary>encrypting</secondary>
- </indexterm>
-
- <para>Like the encryption of disk partitions, encryption of swap
- space is used to protect sensitive information. Consider an
- application that deals with passwords. As long as these
- passwords stay in physical memory, these passwords will not be
- written to disk and be cleared after a reboot. If &os; starts
- swapping out memory pages to free space for other applications,
- the passwords may be written to the disk platters unencrypted.
- Encrypting swap space can be a solution for this
- scenario.</para>
-
- <para>The &man.gbde.8; or &man.geli.8; encryption systems may be
- used for swap encryption. Both systems use the
- <filename>encswap</filename>
- <link linkend="configtuning-rcd">rc.d</link> script.</para>
-
- <note>
- <para>For the remainder of this section,
- <filename>ad0s1b</filename> will be the swap
- partition.</para>
- </note>
-
- <para>Swap partitions are not encrypted by default and should
- be cleared of any sensitive data before continuing. To
- overwrite the current swap parition with random garbage,
- execute the following command:</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/random of=/dev/ad0s1b bs=1m</userinput></screen>
-
- <sect2>
- <title>Swap Encryption with &man.gbde.8;</title>
-
- <para>The <literal>.bde</literal> suffix should be added to the
- device in the respective <filename>/etc/fstab</filename> swap
- line:</para>
-
- <programlisting># Device Mountpoint FStype Options Dump Pass#
-/dev/ad0s1b.bde none swap sw 0 0</programlisting>
- </sect2>
-
- <sect2>
- <title>Swap Encryption with &man.geli.8;</title>
-
- <para>The procedure for instead 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>
-
- <programlisting># Device Mountpoint FStype Options Dump Pass#
-/dev/ad0s1b.eli none swap sw 0 0</programlisting>
-
- <para>&man.geli.8; uses the <acronym>AES</acronym> algorithm
- with a key length of 128 bit by default. These defaults can
- be altered by using <literal>geli_swap_flags</literal> 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 bits and a sectorsize of 4 kilobytes, and
- sets <quote>detach on last close</quote>:</para>
-
- <programlisting>geli_swap_flags="-e blowfish -l 128 -s 4096 -d"</programlisting>
-
- <para>Refer to the description of
- <command>onetime</command> in &man.geli.8; for a list of
- possible options.</para>
- </sect2>
-
- <sect2>
- <title>Encrypted Swap Verification</title>
-
- <para>Once the system has rebooted, proper operation of the
- encrypted swap can be verified using
- <command>swapinfo</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>
-
- <sect1 xml:id="disks-hast">
- <info>
- <title>Highly Available Storage (HAST)</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Daniel</firstname>
- <surname>Gerzo</surname>
- </personname>
- <contrib>Contributed by </contrib>
- </author>
- </authorgroup>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Freddie</firstname>
- <surname>Cash</surname>
- </personname>
- <contrib>With inputs from </contrib>
- </author>
-
- <author>
- <personname>
- <firstname>Pawel Jakub</firstname>
- <surname>Dawidek</surname>
- </personname>
- </author>
-
- <author>
- <personname>
- <firstname>Michael W.</firstname>
- <surname>Lucas</surname>
- </personname>
- </author>
-
- <author>
- <personname>
- <firstname>Viktor</firstname>
- <surname>Petersson</surname>
- </personname>
- </author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>HAST</primary>
- <secondary>high availability</secondary>
- </indexterm>
-
- <sect2>
- <title>Synopsis</title>
-
- <para>High availability is one of the main requirements in
- serious business applications and highly-available storage is
- a key component in such environments. Highly Available
- STorage, or <acronym>HAST<remark role="acronym">Highly
- Available STorage</remark></acronym>, was developed by
- &a.pjd.email; as a framework which allows transparent storage
- of the same data across several physically separated machines
- connected by a TCP/IP network. <acronym>HAST</acronym> can be
- understood as a network-based RAID1 (mirror), and is similar
- to the DRBD&reg; storage system known from the GNU/&linux;
- platform. In combination with other high-availability
- features of &os; like <acronym>CARP</acronym>,
- <acronym>HAST</acronym> makes it possible to build a
- highly-available storage cluster that is resistant to hardware
- failures.</para>
-
- <para>After reading this section, you will know:</para>
-
- <itemizedlist>
- <listitem>
- <para>What <acronym>HAST</acronym> is, how it works and
- which features it provides.</para>
- </listitem>
-
- <listitem>
- <para>How to set up and use <acronym>HAST</acronym> on
- &os;.</para>
- </listitem>
-
- <listitem>
- <para>How to integrate <acronym>CARP</acronym> and
- &man.devd.8; to build a robust storage system.</para>
- </listitem>
- </itemizedlist>
-
- <para>Before reading this section, you should:</para>
-
- <itemizedlist>
- <listitem>
- <para>Understand &unix; and
- <link linkend="basics">&os; basics</link>.</para>
- </listitem>
-
- <listitem>
- <para>Know how to
- <link linkend="config-tuning">configure</link> network
- interfaces and other core &os; subsystems.</para>
- </listitem>
-
- <listitem>
- <para>Have a good understanding of
- <link linkend="network-communication">&os;
- networking</link>.</para>
- </listitem>
- </itemizedlist>
-
- <para>The <acronym>HAST</acronym> project was sponsored by The
- &os; Foundation with support from
- <link xlink:href="http://www.omc.net/">OMCnet Internet Service
- GmbH</link> and <link
- xlink:href="http://www.transip.nl/">TransIP
- BV</link>.</para>
- </sect2>
-
- <sect2>
- <title>HAST Features</title>
-
- <para>The main features of the <acronym>HAST</acronym> system
- are:</para>
-
- <itemizedlist>
- <listitem>
- <para>Can be used to mask I/O errors on local hard
- drives.</para>
- </listitem>
-
- <listitem>
- <para>File system agnostic as it works with any file
- system supported by &os;.</para>
- </listitem>
-
- <listitem>
- <para>Efficient and quick resynchronization, synchronizing
- only blocks that were modified during the downtime of a
- node.</para>
- </listitem>
-
- <!--
- <listitem>
- <para>Has several synchronization modes to allow for fast
- failover.</para>
- </listitem>
- -->
-
- <listitem>
- <para>Can be used in an already deployed environment to add
- additional redundancy.</para>
- </listitem>
-
- <listitem>
- <para>Together with <acronym>CARP</acronym>,
- <application>Heartbeat</application>, or other tools, it
- can be used to build a robust and durable storage
- system.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>HAST Operation</title>
-
- <para>As <acronym>HAST</acronym> provides a synchronous
- block-level replication of any storage media to several
- machines, it requires at least two physical machines:
- the <literal>primary</literal>, also known as the
- <literal>master</literal> node, and the
- <literal>secondary</literal> or <literal>slave</literal>
- node. These two machines together are referred to as a
- cluster.</para>
-
- <note>
- <para>HAST is currently limited to two cluster nodes in
- total.</para>
- </note>
-
- <para>Since <acronym>HAST</acronym> works in a
- primary-secondary configuration, it allows only one of the
- cluster nodes to be active at any given time. The
- <literal>primary</literal> node, also called
- <literal>active</literal>, is the one which will handle all
- the I/O requests to <acronym>HAST</acronym>-managed
- devices. The <literal>secondary</literal> node is
- automatically synchronized from the <literal>primary</literal>
- node.</para>
-
- <para>The physical components of the <acronym>HAST</acronym>
- system are:</para>
-
- <itemizedlist>
- <listitem>
- <para>local disk on primary node, and</para>
- </listitem>
-
- <listitem>
- <para>disk on remote, secondary node.</para>
- </listitem>
- </itemizedlist>
-
- <para><acronym>HAST</acronym> operates synchronously on a block
- level, making it transparent to file systems and applications.
- <acronym>HAST</acronym> provides regular GEOM providers in
- <filename>/dev/hast/</filename> for use by
- other tools or applications, thus there is no difference
- between using <acronym>HAST</acronym>-provided devices and
- raw disks or partitions.</para>
-
- <para>Each write, delete, or flush operation is sent to the
- local disk and to the remote disk over TCP/IP. Each read
- operation is served from the local disk, unless the local disk
- is not up-to-date or an I/O error occurs. In such case, the
- read operation is sent to the secondary node.</para>
-
- <sect3>
- <title>Synchronization and Replication Modes</title>
-
- <para><acronym>HAST</acronym> tries to provide fast failure
- recovery. For this reason, it is very important to reduce
- synchronization time after a node's outage. To provide fast
- synchronization, <acronym>HAST</acronym> manages an on-disk
- bitmap of dirty extents and only synchronizes those during a
- regular synchronization, with an exception of the initial
- sync.</para>
-
- <para>There are many ways to handle synchronization.
- <acronym>HAST</acronym> implements several replication modes
- to handle different synchronization methods:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>memsync</emphasis>: report write operation
- as completed when the local write operation is finished
- and when the remote node acknowledges data arrival, but
- before actually storing the data. The data on the
- remote node will be stored directly after sending the
- acknowledgement. This mode is intended to reduce
- latency, but still provides very good
- reliability.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>fullsync</emphasis>: report write
- operation as completed when local write completes and
- when remote write completes. This is the safest and the
- slowest replication mode. This mode is the
- default.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>async</emphasis>: report write operation
- as completed when local write completes. This is the
- fastest and the most dangerous replication mode. It
- should be used when replicating to a distant node where
- latency is too high for other modes.</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
-
- <sect2>
- <title>HAST Configuration</title>
-
- <para><acronym>HAST</acronym> requires
- <literal>GEOM_GATE</literal> support which is not present in
- the default <literal>GENERIC</literal> kernel. However, the
- <varname>geom_gate.ko</varname> loadable module is available
- in the default &os; installation. Alternatively, to build
- <literal>GEOM_GATE</literal> support into the kernel
- statically, add this line to the custom kernel configuration
- file:</para>
-
- <programlisting>options GEOM_GATE</programlisting>
-
- <para>The <acronym>HAST</acronym> framework consists of several
- parts from the operating system's point of view:</para>
-
- <itemizedlist>
- <listitem>
- <para>the &man.hastd.8; daemon responsible for data
- synchronization,</para>
- </listitem>
-
- <listitem>
- <para>the &man.hastctl.8; userland management
- utility,</para>
- </listitem>
-
- <listitem>
- <para>and the &man.hast.conf.5; configuration file.</para>
- </listitem>
- </itemizedlist>
-
- <para>The following example describes how to configure two nodes
- in <literal>master</literal>-<literal>slave</literal> /
- <literal>primary</literal>-<literal>secondary</literal>
- operation using <acronym>HAST</acronym> to replicate the data
- between the two. The nodes will be called
- <literal>hasta</literal> with an IP address of
- <replaceable>172.16.0.1</replaceable> and
- <literal>hastb</literal> with an IP of address
- <replaceable>172.16.0.2</replaceable>. Both nodes will have a
- dedicated hard drive <filename>/dev/ad6</filename> of the same
- size for <acronym>HAST</acronym> operation. The
- <acronym>HAST</acronym> pool, sometimes also referred to as a
- resource or the GEOM provider in
- <filename>/dev/hast/</filename>, will be called
- <filename>test</filename>.</para>
-
- <para>Configuration of <acronym>HAST</acronym> is done using
- <filename>/etc/hast.conf</filename>. This file should be the
- same on both nodes. The simplest configuration possible
- is:</para>
-
- <programlisting>resource test {
- on hasta {
- local /dev/ad6
- remote 172.16.0.2
- }
- on hastb {
- local /dev/ad6
- remote 172.16.0.1
- }
-}</programlisting>
-
- <para>For more advanced configuration, refer to
- &man.hast.conf.5;.</para>
-
- <tip>
- <para>It is also possible to use host names in the
- <literal>remote</literal> statements. In such a case, make
- sure that these hosts are resolvable and are defined in
- <filename>/etc/hosts</filename> or in the local
- <acronym>DNS</acronym>.</para>
- </tip>
-
- <para>Now that the configuration exists on both nodes,
- the <acronym>HAST</acronym> pool can be created. Run these
- commands on both nodes to place the initial metadata onto the
- local disk and to start &man.hastd.8;:</para>
-
- <screen>&prompt.root; <userinput>hastctl create test</userinput>
-&prompt.root; <userinput>service hastd onestart</userinput></screen>
-
- <note>
- <para>It is <emphasis>not</emphasis> possible to use GEOM
- providers with an existing file system or to convert an
- existing storage to a <acronym>HAST</acronym>-managed pool.
- This procedure needs to store some metadata on the provider
- and there will not be enough required space
- available on an existing provider.</para>
- </note>
-
- <para>A HAST node's <literal>primary</literal> or
- <literal>secondary</literal> role is selected by an
- administrator, or software like
- <application>Heartbeat</application>, using &man.hastctl.8;.
- On the primary node,
- <literal>hasta</literal>, issue
- this command:</para>
-
- <screen>&prompt.root; <userinput>hastctl role primary test</userinput></screen>
-
- <para>Similarly, run this command on the secondary node,
- <literal>hastb</literal>:</para>
-
- <screen>&prompt.root; <userinput>hastctl role secondary test</userinput></screen>
-
- <caution>
- <para>When the nodes are unable to communicate with each
- other, and both are configured as primary nodes, the
- condition is called <literal>split-brain</literal>. To
- troubleshoot this situation, follow the steps described in
- <xref linkend="disks-hast-sb"/>.</para>
- </caution>
-
- <para>Verify the result by running &man.hastctl.8; on each
- node:</para>
-
- <screen>&prompt.root; <userinput>hastctl status test</userinput></screen>
-
- <para>The important text is the <literal>status</literal> line,
- which should say <literal>complete</literal>
- on each of the nodes. If it says <literal>degraded</literal>,
- something went wrong. At this point, the synchronization
- between the nodes has already started. The synchronization
- completes when <command>hastctl status</command>
- reports 0 bytes of <literal>dirty</literal> extents.</para>
-
-
- <para>The next step is to create a filesystem on the
- <filename>/dev/hast/test</filename>
- GEOM provider and mount it. This must be done on the
- <literal>primary</literal> node, as
- <filename>/dev/hast/test</filename>
- appears only on the <literal>primary</literal> node. Creating
- the filesystem can take a few minutes, depending on the size
- of the hard drive:</para>
-
- <screen>&prompt.root; <userinput>newfs -U /dev/hast/test</userinput>
-&prompt.root; <userinput>mkdir /hast/test</userinput>
-&prompt.root; <userinput>mount /dev/hast/test /hast/test</userinput></screen>
-
- <para>Once the <acronym>HAST</acronym> framework is configured
- properly, the final step is to make sure that
- <acronym>HAST</acronym> is started automatically during
- system boot. Add this line to
- <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>hastd_enable="YES"</programlisting>
-
- <sect3>
- <title>Failover Configuration</title>
-
- <para>The goal of this example is to build a robust storage
- system which is resistant to the failure of any given node.
- The scenario is that a <literal>primary</literal> node of
- the cluster fails. If this happens, the
- <literal>secondary</literal> node is there to take over
- seamlessly, check and mount the file system, and continue to
- work without missing a single bit of data.</para>
-
- <para>To accomplish this task, another &os; feature,
- <acronym>CARP</acronym>, provides for automatic failover on
- the IP layer. <acronym>CARP</acronym> (Common
- Address Redundancy Protocol) allows multiple hosts on the
- same network segment to share an IP address. Set up
- <acronym>CARP</acronym> on both nodes of the cluster
- according to the documentation available in
- <xref linkend="carp"/>. After setup, each node will
- have its own <filename>carp0</filename> interface with a
- shared IP address of
- <replaceable>172.16.0.254</replaceable>. The primary
- <acronym>HAST</acronym> node of the cluster must be the
- master <acronym>CARP</acronym> node.</para>
-
- <para>The <acronym>HAST</acronym> pool created in the previous
- section is now ready to be exported to the other hosts on
- the network. This can be accomplished by exporting it
- through <acronym>NFS</acronym> or
- <application>Samba</application>, using the shared IP
- address <replaceable>172.16.0.254</replaceable>. The only
- problem which remains unresolved is an automatic failover
- should the primary node fail.</para>
-
- <para>In the event of <acronym>CARP</acronym> interfaces going
- up or down, the &os; operating system generates a
- &man.devd.8; event, making it possible to watch for state
- changes on the <acronym>CARP</acronym> interfaces. A state
- change on the <acronym>CARP</acronym> interface is an
- indication that one of the nodes failed or came back online.
- These state change events make it possible to run a script
- which will automatically handle the HAST failover.</para>
-
- <para>To be able to catch state changes on the
- <acronym>CARP</acronym> interfaces, add this
- configuration to
- <filename>/etc/devd.conf</filename> on each node:</para>
-
- <programlisting>notify 30 {
- match "system" "IFNET";
- match "subsystem" "carp0";
- match "type" "LINK_UP";
- action "/usr/local/sbin/carp-hast-switch master";
-};
-
-notify 30 {
- match "system" "IFNET";
- match "subsystem" "carp0";
- match "type" "LINK_DOWN";
- action "/usr/local/sbin/carp-hast-switch slave";
-};</programlisting>
-
- <para>Restart &man.devd.8; on both nodes to put the new
- configuration into effect:</para>
-
- <screen>&prompt.root; <userinput>service devd restart</userinput></screen>
-
- <para>When the <filename>carp0</filename> interface state
- changes by going up or down , the system generates a
- notification, allowing the &man.devd.8; subsystem to run an
- arbitrary script, in this case
- <filename>/usr/local/sbin/carp-hast-switch</filename>. This
- script handles the automatic failover. For further
- clarification about the above &man.devd.8; configuration,
- refer to &man.devd.conf.5;.</para>
-
- <para>An example of such a script could be:</para>
-
- <programlisting>#!/bin/sh
-
-# Original script by Freddie Cash &lt;fjwcash@gmail.com&gt;
-# Modified by Michael W. Lucas &lt;mwlucas@BlackHelicopters.org&gt;
-# and Viktor Petersson &lt;vpetersson@wireload.net&gt;
-
-# The names of the HAST resources, as listed in /etc/hast.conf
-resources="test"
-
-# delay in mounting HAST resource after becoming master
-# make your best guess
-delay=3
-
-# logging
-log="local0.debug"
-name="carp-hast"
-
-# end of user configurable stuff
-
-case "$1" in
- master)
- logger -p $log -t $name "Switching to primary provider for ${resources}."
- sleep ${delay}
-
- # Wait for any "hastd secondary" processes to stop
- for disk in ${resources}; do
- while $( pgrep -lf "hastd: ${disk} \(secondary\)" &gt; /dev/null 2&gt;&amp;1 ); do
- sleep 1
- done
-
- # Switch role for each disk
- hastctl role primary ${disk}
- if [ $? -ne 0 ]; then
- logger -p $log -t $name "Unable to change role to primary for resource ${disk}."
- exit 1
- fi
- done
-
- # Wait for the /dev/hast/* devices to appear
- for disk in ${resources}; do
- for I in $( jot 60 ); do
- [ -c "/dev/hast/${disk}" ] &amp;&amp; break
- sleep 0.5
- done
-
- if [ ! -c "/dev/hast/${disk}" ]; then
- logger -p $log -t $name "GEOM provider /dev/hast/${disk} did not appear."
- exit 1
- fi
- done
-
- logger -p $log -t $name "Role for HAST resources ${resources} switched to primary."
-
-
- logger -p $log -t $name "Mounting disks."
- for disk in ${resources}; do
- mkdir -p /hast/${disk}
- fsck -p -y -t ufs /dev/hast/${disk}
- mount /dev/hast/${disk} /hast/${disk}
- done
-
- ;;
-
- slave)
- logger -p $log -t $name "Switching to secondary provider for ${resources}."
-
- # Switch roles for the HAST resources
- for disk in ${resources}; do
- if ! mount | grep -q "^/dev/hast/${disk} on "
- then
- else
- umount -f /hast/${disk}
- fi
- sleep $delay
- hastctl role secondary ${disk} 2&gt;&amp;1
- if [ $? -ne 0 ]; then
- logger -p $log -t $name "Unable to switch role to secondary for resource ${disk}."
- exit 1
- fi
- logger -p $log -t $name "Role switched to secondary for resource ${disk}."
- done
- ;;
-esac</programlisting>
-
- <para>In a nutshell, the script takes these actions when a
- node becomes <literal>master</literal> /
- <literal>primary</literal>:</para>
-
- <itemizedlist>
- <listitem>
- <para>Promotes the <acronym>HAST</acronym> pools to
- primary on a given node.</para>
- </listitem>
-
- <listitem>
- <para>Checks the file system under the
- <acronym>HAST</acronym> pool.</para>
- </listitem>
-
- <listitem>
- <para>Mounts the pools at an appropriate place.</para>
- </listitem>
- </itemizedlist>
-
- <para>When a node becomes <literal>backup</literal> /
- <literal>secondary</literal>:</para>
-
- <itemizedlist>
- <listitem>
- <para>Unmounts the <acronym>HAST</acronym> pools.</para>
- </listitem>
-
- <listitem>
- <para>Degrades the <acronym>HAST</acronym> pools to
- secondary.</para>
- </listitem>
- </itemizedlist>
-
- <caution>
- <para>Keep in mind that this is just an example script which
- serves as a proof of concept. It does not handle all the
- possible scenarios and can be extended or altered in any
- way, for example, to start/stop required services.</para>
- </caution>
-
- <tip>
- <para>For this example, a standard UFS file system was used.
- To reduce the time needed for recovery, a journal-enabled
- UFS or ZFS file system can be used instead.</para>
- </tip>
-
- <para>More detailed information with additional examples can
- be found in the <link
- xlink:href="http://wiki.FreeBSD.org/HAST">HAST Wiki</link>
- page.</para>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Troubleshooting</title>
-
- <sect3>
- <title>General Troubleshooting Tips</title>
-
- <para><acronym>HAST</acronym> should generally work without
- issues. However, as with any other software product, there
- may be times when it does not work as supposed. The sources
- of the problems may be different, but the rule of thumb is
- to ensure that the time is synchronized between all nodes of
- the cluster.</para>
-
- <para>When troubleshooting <acronym>HAST</acronym> problems,
- the debugging level of &man.hastd.8; should be increased by
- starting &man.hastd.8; with <literal>-d</literal>. This
- argument may be specified multiple times to further increase
- the debugging level. A lot of useful information may be
- obtained this way. Consider also using
- <literal>-F</literal>, which starts &man.hastd.8; in the
- foreground.</para>
- </sect3>
-
- <sect3 xml:id="disks-hast-sb">
- <title>Recovering from the Split-brain Condition</title>
-
- <para><literal>Split-brain</literal> is when the nodes of the
- cluster are unable to communicate with each other, and both
- are configured as primary. This is a dangerous condition
- because it allows both nodes to make incompatible changes to
- the data. This problem must be corrected manually by the
- system administrator.</para>
-
- <para>The administrator must decide which node has more
- important changes (or merge them manually) and let
- <acronym>HAST</acronym> perform full synchronization of the
- node which has the broken data. To do this, issue these
- commands on the node which needs to be
- resynchronized:</para>
-
- <screen>&prompt.root; <userinput>hastctl role init &lt;resource&gt;</userinput>
-&prompt.root; <userinput>hastctl create &lt;resource&gt;</userinput>
-&prompt.root; <userinput>hastctl role secondary &lt;resource&gt;</userinput></screen>
- </sect3>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/Makefile b/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
deleted file mode 100644
index e3d020467f..0000000000
--- a/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# 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.xml
-
-VPATH= ..
-
-MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
-
-DOC_PREFIX?= ${.CURDIR}/../../../..
-
-.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.xml b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.xml
deleted file mode 100644
index 4170a7c26e..0000000000
--- a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.xml
+++ /dev/null
@@ -1,400 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: DTrace
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="dtrace">
- <info><title>&dtrace;</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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>Μόνο ο <systemitem class="username">root</systemitem> μπορεί να χρησιμοποιήσει το
- &dtrace; στο &os;. Αυτό σχετίζεται με διαφορές στην ασφάλεια, καθώς το
- &solaris; διαθέτει κάποιους ελέγχους ασφάλειας χαμηλού επιπέδου, οι
- οποίοι δεν υπάρχουν ακόμα στο &os;. Για το λόγο αυτό, η χρήση της
- συσκευής <filename>/dev/dtrace/dtrace</filename> απαγορεύεται
- αυστηρά για όλους τους χρήστες εκτός από τον
- <systemitem class="username">root</systemitem>.</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 στη διεύθυνση
- <link xlink:href="http://www.opensolaris.org/os/licensing">http://www.opensolaris.org/os/licensing</link>.</para>
-
- <para>Η άδεια ουσιαστικά σημαίνει ότι ένας πυρήνας &os; με τις επιλογές
- του &dtrace;, εξακολουθεί να βρίσκεται υπό την άδεια
- <acronym>BSD</acronym>. Ωστόσο το <acronym>CDDL</acronym> εμπλέκεται
- τη στιγμή που γίνεται διανομή των αρθρωμάτων σε δυαδική μορφή, ή τη
- στιγμή που φορτώνονται.</para>
- </sect1>
-
- <sect1 xml: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
- <package>shells/ksh93</package>. Μπορείτε επίσης να
- εκτελέσετε αυτά τα εργαλεία και μέσω του
- <package>shells/pdksh</package> ή του
- <package>shells/mksh</package>.</para>
-
- <para>Τέλος, ανακτήστε την τρέχουσα σειρά εργαλείων &dtrace;. Η τελευταία
- έκδοση διατίθεται στην τοποθεσία
- <uri xlink:href="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/">http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/</uri>.
- Διατίθεται και πρόγραμμα εγκατάστασης, το οποίο δεν είναι ωστόσο
- απαραίτητο να εκτελέσετε προκειμένου να χρησιμοποιήσετε τα
- εργαλεία.</para>
- </sect1>
-
- <sect1 xml: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 xml:id="dtrace-language">
- <title>Η Γλώσσα D</title>
-
- <para>Η σειρά εργαλείων &dtrace;, περιλαμβάνει αρκετά scripts γραμμένα στην
- ειδική γλώσσα του &dtrace;. Η γλώσσα αυτή ονομάζεται
- <quote>η γλώσσα D</quote> στην τεκμηρίωση της &sun;, και είναι αρκετά
- όμοια με τη C++. Αναλυτική περιγραφή αυτής της γλώσσας είναι πέρα από
- τους σκοπούς αυτού του κειμένου. Υπάρχει ενεργή συζήτηση σχετικά με
- αυτή, στη διεύθυνση <uri xlink:href="http://wikis.sun.com/display/DTrace/Documentation">http://wikis.sun.com/display/DTrace/Documentation</uri>.</para>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/eresources/chapter.xml b/el_GR.ISO8859-7/books/handbook/eresources/chapter.xml
deleted file mode 100644
index f3b10fb6e8..0000000000
--- a/el_GR.ISO8859-7/books/handbook/eresources/chapter.xml
+++ /dev/null
@@ -1,2207 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Πηγές Πληροφόρησης στο Διαδίκτυο
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/eresources/chapter.xml
- %SRCID% 39281
-
--->
-<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="eresources">
- <title>Πηγές Πληροφόρησης στο Διαδίκτυο</title>
-
- <para>Η ραγδαία εξέλιξη του &os; καθιστά τα έντυπα μέσα ανίκανα να
- ακολουθήσουν τις τελευταίες εξελίξεις. Οι ηλεκτρονικές πηγές είναι ο
- καλύτερος (αν όχι ο μόνος) τρόπος για να παραμείνετε ενήμερος για τις
- τελευταίες εξελίξεις. Καθώς το &os; είναι μια εθελοντική προσπάθεια, η
- κοινότητα των χρηστών λειτουργεί και ως
- <quote>τμήμα τεχνικής υποστήριξης</quote>, με το ηλεκτρονικό ταχυδρομείο,
- τα web forums, και τα USENET news να είναι οι πλέον αποτελεσματικοί
- τρόποι για να έλθετε σε επαφή με αυτή την κοινότητα.</para>
-
- <para>Στις παρακάτω ενότητες, θα βρείτε τα σημαντικότερα σημεία
- επικοινωνίας με την κοινότητα χρηστών του &os;. Αν γνωρίζετε και άλλες
- πηγές, οι οποίες δεν αναφέρονται εδώ, παρακαλούμε να τις στείλετε στην
- &a.doc; ώστε να ενταχθούν και αυτές.</para>
-
- <sect1 xml: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>Αν βρίσκεστε σε δίλημμα σχετικά με το ποια λίστα να στείλετε μια
- ερώτηση, δείτε το <link xlink:href="&url.articles.freebsd-questions;">Πως να
- χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου
- &os;-questions</link>.</para>
-
- <para>Πριν στείλετε κάτι σε οποιαδήποτε λίστα, μάθετε πως να
- χρησιμοποιείτε καλύτερα τις λίστες ηλεκτρονικού ταχυδρομείου. Για
- παράδειγμα, δείτε πως μπορείτε να βοηθήσετε ώστε να αποφεύγονται συχνά
- επαναλαμβανόμενες συζητήσεις, διαβάζοντας το κείμενο <link xlink:href="&url.articles.mailing-list-faq;"> Συχνές Ερωτήσεις Σχετικά με
- τις Λίστες Ταχυδρομείου</link> (FAQ).</para>
-
- <para>Για όλες τις λίστες ηλεκτρονικού ταχυδρομείου διατηρείται αρχείο με
- τις παλιές δημοσιεύσεις, στο οποίο μπορεί να γίνει αναζήτηση
- χρησιμοποιώντας την <link xlink:href="&url.base;/search/index.html">Δικτυακή
- Τοποθεσία του &os;</link>. Είναι δυνατή η αναζήτηση στο αρχείο μέσω
- λέξεων-κλειδιών, το οποίο αποτελεί ένα άριστο τρόπο για να βρείτε
- απαντήσεις σε συχνές ερωτήσεις. Πριν στείλετε μια ερώτηση, καλό θα
- είναι να πραγματοποιήσετε μια τέτοια αναζήτηση. Σημειώστε επίσης ότι
- τα μηνύματα που στέλνονται σε αυτές τις λίστες αποθηκεύονται για πάντα.
- Αν σας προβληματίζει η προστασία των προσωπικών σας δεδομένων, σας
- συνιστούμε να χρησιμοποιήσετε μια δευτερεύουσα διεύθυνση email, και να
- μην γράφετε ποτέ προσωπικές σας πληροφορίες.</para>
-
- <sect2 xml: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.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.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.numerics.name;</entry>
- <entry>Συζητήσεις για υλοποίηση υψηλής ποιότητας συναρτήσεων
- της βιβλιοθήκης libm</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.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>
-
- <row>
- <entry>&a.zope.name;</entry>
- <entry><application>Zope</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>Συντηρητές του <link xlink:href="&url.base;/index.html">www.FreeBSD.org</link></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para><emphasis>Λίστες digest:</emphasis> Όλες οι παραπάνω λίστες
- διατίθενται και σε μορφή digest (περίληψης). Μόλις εγγραφείτε σε μία
- λίστα, μπορείτε να αλλάξετε τις επιλογές digest στο τμήμα ρυθμίσεων
- του λογαριασμού σας.</para>
-
- <para><emphasis>Λίστες 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.svn-doc-all.name;</entry>
- <entry><filename>/usr/doc</filename></entry>
- <entry>Όλες οι αλλαγές στο δέντρο doc του Subversion (εκτός
- από τις περιοχές <filename>user</filename>,
- <filename>projects</filename> και
- <filename>translations</filename>)</entry>
- </row>
-
- <row>
- <entry>&a.svn-doc-head.name;</entry>
- <entry><filename>/usr/doc</filename></entry>
- <entry>Όλες οι αλλαγές στoν κλάδο <quote>head</quote> του
- doc Subversion repository</entry>
- </row>
-
- <row>
- <entry>&a.svn-doc-projects.name;</entry>
- <entry><filename>/usr/doc/projects</filename></entry>
- <entry>Όλες οι αλλαγές στην περιοχή <quote>projects</quote> του
- doc Subversion repository</entry>
- </row>
-
- <row>
- <entry>&a.svn-doc-svnadmin.name;</entry>
- <entry><filename>/usr/doc</filename></entry>
- <entry>Όλες οι αλλαγές στα scripts διαχείρισης, hooks
- και άλλα δεδομένα ρυθμίσεων του doc Subversion
- repository</entry>
- </row>
-
- <row>
- <entry>&a.svn-ports-all.name;</entry>
- <entry><filename>/usr/ports</filename></entry>
- <entry>Όλες οι αλλαγές στo ports Subversion repository</entry>
- </row>
-
- <row>
- <entry>&a.svn-ports-head.name;</entry>
- <entry><filename>/usr/ports</filename></entry>
- <entry>Όλες οι αλλαγές στον κλάδο <quote>head</quote> του
- ports Subversion repository</entry>
- </row>
-
- <row>
- <entry>&a.svn-ports-svnadmin.name;</entry>
- <entry><filename>/usr/ports</filename></entry>
- <entry>Όλες οι αλλαγές στα scripts διαχείρισης, hooks
- και άλλα δεδομένα ρυθμίσεων του ports Subversion
- repository.</entry>
- </row>
-
- <row>
- <entry>&a.svn-src-all.name;</entry>
- <entry><filename>/usr/src</filename></entry>
- <entry>Όλες οι αλλαγές στο src 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> του
- src 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 xml: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 xml: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.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; ή μέσω της αντίστοιχης <link xlink:href="&url.base;/send-pr.html">διεπαφή WEB</link>.</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 xml:id="eresources-charters-jobs">
- <term>&a.jobs.name;</term>
-
- <listitem>
- <para><emphasis>Ζήτηση και προσφορά εργασίας</emphasis></para>
-
- <para>Αυτός είναι ένας χώρος για δημοσίευση ανακοινώσεων για
- προσφορά και ζήτηση εργασίας που σχετίζεται με το &os;, καθώς
- και βιογραφικών σχετικών με το &os;. Αν για παράδειγμα
- αναζητάτε εργασία σχετική με το &os;, ή προσφέρετε μια θέση
- εργασίας σχετική με το &os;, αυτό είναι το σωστό μέρος για να
- τη διαφημίσετε. Η λίστα αυτή <emphasis>δεν</emphasis> είναι
- για γενικά θέματα εργασίας, για τα οποία υπάρχει πληθώρα από
- άλλες λίστες στο Διαδίκτυο.</para>
-
- <para>Αυτή η λίστα, όπως και οι υπόλοιπες λίστες του
- <systemitem class="fqdomainname">FreeBSD.org</systemitem>, διανέμονται
- παγκόσμια. Έτσι, πρέπει να είστε σαφής για την τοποθεσία και
- την δυνατότητα τηλεργασίας ή βοήθειας στην μετοίκηση.</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.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>/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><uri xlink:href="http://www.freebsd.org/news/status/">http://www.freebsd.org/news/status/</uri></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>
-
- <varlistentry>
- <term>&a.zope.name;</term>
-
- <listitem>
- <para><emphasis>Zope</emphasis></para>
-
- <para>Μια λίστα συζητήσεων σχετικών με τη μεταφορά του
- περιβάλλοντος <application>Zope</application> στο &os;.
- Πρόκειται για λίστα τεχνικών συζητήσεων. Απευθύνεται κυρίως
- σε άτομα που συμμετέχουν ενεργά στη μεταφορά του
- <application>Zope</application> στο &os; και συζητούνται
- προβλήματα και εναλλακτικές λύσεις. Η λίστα είναι επίσης
- ανοικτή σε όσους ενδιαφέρονται για τεχνική συζήτηση αυτού
- του είδους.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
-
- <sect2 xml: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 xml:id="eresources-news">
- <title>Usenet Newsgroups</title>
-
- <para>Εκτός από δύο newsgroups που ασχολούνται με το &os;, υπάρχουν πολλά
- ακόμα στα οποία γίνεται συζήτηση για το &os; ή άλλα θέματα που
- ενδεχομένως ενδιαφέρουν τους χρήστες του.</para>
-
- <sect2>
- <title>Newsgroups Σχετικά με το BSD</title>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd</link> (Στα Γερμανικά)</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:fr.comp.os.bsd">fr.comp.os.bsd</link> (Στα Γαλλικά)</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:it.comp.os.freebsd">it.comp.os.freebsd</link> (Στα Ιταλικά)</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:tw.bbs.comp.386bsd">tw.bbs.comp.386bsd</link> (Σε Παραδοσιακά Κινέζικα)</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Άλλα Ενδιαφέροντα &unix; Newsgroups</title>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="news:comp.unix">comp.unix</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.questions">comp.unix.questions</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.admin">comp.unix.admin</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.programmer">comp.unix.programmer</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.shell">comp.unix.shell</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.user-friendly">comp.unix.user-friendly</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.security.unix">comp.security.unix</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.sources.unix">comp.sources.unix</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.advocacy">comp.unix.advocacy</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.misc">comp.unix.misc</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.bugs.4bsd">comp.bugs.4bsd</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.bugs.4bsd.ucb-fixes">comp.bugs.4bsd.ucb-fixes</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.unix.bsd">comp.unix.bsd</link></para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Σύστημα X Window</title>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="news:comp.windows.x.i386unix">comp.windows.x.i386unix</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x">comp.windows.x</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x.apps">comp.windows.x.apps</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x.announce">comp.windows.x.announce</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x.intrinsics">comp.windows.x.intrinsics</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x.motif">comp.windows.x.motif</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.windows.x.pex">comp.windows.x.pex</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="news:comp.emulators.ms-windows.wine">comp.emulators.ms-windows.wine</link></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="eresources-web">
- <title>Διακομιστές Ιστοσελίδων</title>
-
- <sect2 xml:id="eresources-web-social">
- <title>Forums, Blogs, και Κοινωνικά Δίκτυα</title>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://forums.freebsd.org/">Τα Forums
- του &os;</link> βασίζονται σε διεπαφή web και είναι κατάλληλα
- για τεχνικές συζητήσεις και ερωτήσεις που αφορούν το &os;.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://planet.freebsdish.org/">Το Planet
- &os;</link> συγκεντρώνει σε ένα σημείο τις ροές από δεκάδες
- ιστολόγια μελών της ομάδας ανάπτυξης του &os;. Πολλά από τα μέλη,
- χρησιμοποιούν αυτή τη δυνατότητα για να γνωστοποιήσουν την εργασία
- που κάνουν τη δεδομένη στιγμή, τυχόν νέες διορθώσεις, καθώς και τα
- μελλοντικά τους σχέδια.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.youtube.com/bsdconferences">Το κανάλι
- BSDConferences στο Youtube</link> παρέχει μια συλλογή βίντεο
- υψηλής ποιότητας, από διάφορα BSD συνέδρια σε όλο τον κόσμο.
- Πρόκειται για ένα θαυμάσιο τρόπο να παρακολουθήσετε σημαντικά μέλη
- της ομάδας ανάπτυξης να παρουσιάζουν τη νέα τους δουλειά στο
- &os;.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="eresources-web-mirrors">
- <title>Επίσημα Mirrors</title>
-
- &chap.eresources.www.index.inc;
-
- &chap.mirrors.lastmod.inc;
-
- &chap.eresources.www.inc;
- </sect2>
- </sect1>
-
- <sect1 xml: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>
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/Makefile b/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
deleted file mode 100644
index fd98bb00ae..0000000000
--- a/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# 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.xml
-
-VPATH= ..
-
-MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
-
-DOC_PREFIX?= ${.CURDIR}/../../../..
-
-.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/chapter.xml b/el_GR.ISO8859-7/books/handbook/filesystems/chapter.xml
deleted file mode 100644
index 66f197c56b..0000000000
--- a/el_GR.ISO8859-7/books/handbook/filesystems/chapter.xml
+++ /dev/null
@@ -1,919 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Συστήματα Αρχείων
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.xml
- %SRCID% 39361
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="filesystems">
- <info><title>Υποστήριξη Συστημάτων Αρχείων</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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>Θα πρέπει να αυξηθεί η περιοχή διευθύνσεων
- <filename>kmem</filename> σε όλες τις αρχιτεκτονικές του &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, δείτε το <uri xlink:href="http://wiki.freebsd.org/ZFSTuningGuide">http://wiki.freebsd.org/ZFSTuningGuide</uri>.</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> δίσκους, και ότι τα ονόματα συσκευών
- τους είναι <filename>da0</filename>,
- <filename>da1</filename> και
- <filename>da2</filename>.
- Όσοι διαθέτουν δίσκους <acronym>IDE</acronym> θα
- πρέπει να χρησιμοποιήσουν συσκευές του τύπου
- <filename>ad</filename>
- αντί για τις αντίστοιχες <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>/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> με ονόματα συσκευών
- <filename>da0</filename>, <filename>da1</filename> και
- <filename>da2</filename>. Για να δημιουργήσουμε ένα 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>/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>.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>/storage/home</filename>
- στην παρούσα κατάσταση του. Μετατρέψτε το στο πραγματικό σύστημα
- αρχείων <filename>/home</filename>:</para>
-
- <screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
-
- <para>Χρησιμοποιώντας τις εντολές <command>df</command> και
- <command>mount</command> θα δούμε ότι το σύστημα χειρίζεται πλέον
- αυτό το σύστημα αρχείων ως το πραγματικό
- <filename>/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>Μπορούμε τώρα να αντικαταστήσουμε το δίσκο
- <filename>da1</filename> μετά την απενεργοποίηση του
- συστήματος. Όταν το σύστημα επανέλθει σε λειτουργία, μπορούμε να
- χρησιμοποιήσουμε την ακόλουθη εντολή για να ενημερώσουμε το
- σύστημα για την αντικατάσταση του δίσκου:</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>
-
- <sect3>
- <title>ZFS Quotas</title>
-
- <para>Το ZFS υποστηρίζει διαφορετικούς τύπους quota: το refquota,
- το γενικό quota, το quota χρήστη και το quota ομάδας. Στην ενότητα
- αυτή θα εξηγήσουμε τις βασικές έννοιες κάθε τύπου και θα δώσουμε
- κάποιες οδηγίες χρήσης.</para>
-
- <para>Τα quotas χρησιμοποιούνται για να περιορίσουν το χώρο στο δίσκο
- που μπορεί να καταναλωθεί από ένα dataset και τους απογόνους του
- (descendants) του καθώς και για να θέσουν περιορισμούς στο χώρο που
- μπορεί να καταλάβει ένα στιγμιότυπο (snapshot). Σε όρους χρήστη,
- τα quotas είναι χρήσιμα για τον περιορισμό του χώρου δίσκου που
- μπορεί να έχει στη διάθεση του κάποιος χρήστης.</para>
-
- <note>
- <para>Δεν μπορείτε να ορίσετε quotas σε τόμους (volumes) καθώς
- αυτό ουσιαστικά γίνεται ήδη από την ιδιότητα
- <literal>volsize</literal>.</para>
- </note>
-
- <para>Το refquota,
- <literal>refquota=size</literal>,
- περιορίζει το χώρο που μπορεί να καταναλώσει ένα dataset
- θέτοντας ένα απόλυτο όριο χώρου (hard limit). Ωστόσο, αυτό
- το απόλυτο όριο δεν περιλαμβάνει το χώρο που χρησιμοποιείται
- από τους απογόνους του dataset όπως τα συστήματα αρχείων ή
- τα στιγμιότυπα.</para>
-
- <para>Για να επιβάλετε γενικό quota 10&nbsp;GB για το
- <filename>storage/home/bob</filename>, χρησιμοποιήστε την
- παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set quota=10G storage/home/bob</userinput></screen>
-
- <para>Τα quotas χρήστη περιορίζουν την ποσότητα χώρου που μπορεί να
- χρησιμοποιήσει ένας συγκεκριμένος χρήστης. Η γενική μορφή είναι
- <literal>userquota@user=size</literal>,
- και το όνομα του χρήστη πρέπει να δίνεται σε μια από τις παρακάτω
- μορφές:</para>
-
- <itemizedlist>
- <listitem>
- <para>Μορφή συμβατή με το <acronym role="Portable Operating System Interface">POSIX</acronym>,
- για παράδειγμα <replaceable>joe</replaceable>.</para>
- </listitem>
-
- <listitem>
- <para>Μορφή συμβατή με το αριθμητικό αναγνωριστικό (ΙD) του
- <acronym role="Portable Operating System Interface">POSIX</acronym>,
- για παράδειγμα <replaceable>789</replaceable>.</para>
- </listitem>
-
- <listitem>
- <para>Μορφή ονόματος <acronym role="System Identifier">SID</acronym>, για παράδειγμα
- <replaceable>joe.bloggs@example.com</replaceable>.</para>
- </listitem>
-
- <listitem>
- <para>Μορφή αριθμητικού αναγνωριστικού (ID) <acronym role="System Identifier">SID</acronym>, για παράδειγμα
- <replaceable>S-1-123-456-789</replaceable>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Για παράδειγμα, για να επιβάλετε quota 50&nbsp;GB για ένα
- χρήστη με όνομα <replaceable>joe</replaceable>, χρησιμοποιήστε
- την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set userquota@joe=50G</userinput></screen>
-
- <para>Για να αφαιρέσετε το quota ή να βεβαιωθείτε ότι δεν έχει τεθεί,
- χρησιμοποιήστε την εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set userquota@joe=none</userinput></screen>
-
- <para>Οι ιδιότητες των quota χρηστών δεν απεικονίζονται μέσω της
- εντολής <command>zfs get all</command>. Οι χρήστες εκτός του
- <systemitem class="username">root</systemitem> μπορούν να δουν μόνο τα δικά τους
- quotas εκτός αν τους έχει αποδοθεί το προνόμιο
- <literal>userquota</literal>. Οι χρήστες με αυτό το προνόμιο
- μπορούν να δουν και να ρυθμίσουν τo quota οποιουδήποτε
- χρήστη.</para>
-
- <para>Το quota ομάδας περιορίζει το διαθέσιμο χώρο που μπορεί να
- χρησιμοποιηθεί από μια συγκεκριμένη ομάδα χρηστών. Η γενική μορφή
- είναι
- <literal>groupquota@group=size</literal>.</para>
-
- <para>Για να θέσετε quota για την ομάδα χρηστών
- <replaceable>firstgroup</replaceable> τα 50&nbsp;GB, χρησιμοποιήστε
- την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=50G</userinput></screen>
-
- <para>Για να αφαιρέσετε το quota ή να βεβαιωθείτε ότι δεν έχει τεθεί,
- χρησιμοποιήστε την εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set groupquota@firstgroup=none</userinput></screen>
-
- <para>Όπως και με την ιδιότητα quota χρηστών, οι χρήστες εκτός του
- <systemitem class="username">root</systemitem> μπορούν να δουν μόνο τα quota που
- σχετίζονται με τις ομάδες στις οποίες ανήκουν. Ωστόσο, ο χρήστης
- <systemitem class="username">root</systemitem> και κάθε χρήστης στον οποίο έχει δοθεί
- το προνόμιο <literal>groupquota</literal> μπορεί να δει και να
- ρυθμίσει τα quota για όλες τις ομάδες.</para>
-
- <para>Η υπο-εντολή <command>zfs userspace</command> απεικονίζει
- την ποσότητα χώρου που καταναλώνει κάθε χρήστης στο συγκεκριμένο
- σύστημα αρχείων ή στιγμιότυπο καθώς και το καθορισμένο quota.
- Η υπο-εντολή <command>zfs groupspace</command> εκτελεί ακριβώς το
- ίδιο για ομάδες χρηστών. Για περισσότερες πληροφορίες σχετικά
- με τις επιλογές εκτέλεσης ή απεικόνισης αυτών των εντολών, δείτε
- το &man.zfs.1;.</para>
-
- <para>Για να δειτε το quota για το
- <filename>storage/home/bob</filename>, αν έχετε τα σωστά προνόμια
- ή είστε ο <systemitem class="username">root</systemitem>, χρησιμοποιήστε την παρακάτω
- εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs get quota storage/home/bob</userinput></screen>
- </sect3>
-
- <sect3>
- <title>Κρατήσεις Χώρου (reservations) στο ZFS</title>
-
- <para>Το ZFS υποστηρίζει δύο τύπους κρατήσεων χώρου. Σε αυτή την
- ενότητα θα εξηγήσουμε τις βασικές έννοιες κάθε τύπο και θα δώσουμε
- κάποιες οδηγίες χρήσης.</para>
-
- <para>Η ιδιότητα <literal>reservation</literal> μας επιτρέπει να
- διαφυλάξουμε κάποιο εγγυημένο ελάχιστο ποσό χώρου για ένα dataset
- και τους απογόνους του. Αυτό σημαίνει ότι αν τεθεί κράτηση χώρου
- 10&nbsp;GB στο <filename>storage/home/bob</filename> και ο διαθέσιμος
- χώρος του δίσκου καταστεί ελάχιστος, θα διαφυλαχθούν τουλάχιστον
- 10&nbsp;GB χώρου για αυτό το dataset. Η ιδιότητα
- <literal>refreservation</literal> θέτει ή δείχνει την ελάχιστη
- ποσότητα χώρου που έχει κρατηθεί για ένα dataset χωρίς τους
- απογόνους του (π.χ. τα στιγμιότυπα). Για παράδειγμα, για να πάρετε
- ένα στιγμιότυπο του <filename>storage/home/bob</filename> θα πρέπει
- να έχετε επαρκή χώρο εκτός της ποσότητας
- <literal>refreservation</literal> για να εκτελέσετε επιτυχώς τη
- λειτουργία. Οι απόγονοι του κυρίου dataset δεν προσμετρώνται από
- την ιδιότητα <literal>refreservation</literal> και δεν καταπατούν
- τον ελεύθερο χώρο του.</para>
-
- <para>Οι κρατήσεις κάθε τύπου είναι χρήσιμες σε πολλές περιπτώσεις,
- για παράδειγμα στο σχεδιασμό και δοκιμή καταλληλότητας της κατανομής
- χώρου σε ένα νέο σύστημα ή την εξασφάλιση διαθεσιμότητας αρκετού
- ελεύθερου χώρου σε ένα σύστημα για λειτουργίες ανάκτησης
- δεδομένων (recovery).</para>
-
- <para>Η γενική μορφή της ιδιότητας <literal>reservation</literal>
- είναι
- <literal>reservation=size</literal>.
- Για να θέσετε κράτηση 10&nbsp;GB στο
- <filename>storage/home/bob</filename> χρησιμοποιήστε την
- παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set reservation=10G storage/home/bob</userinput></screen>
-
- <para>Για να αφαιρέσετε ένα reservation ή να βεβαιωθείτε ότι δεν έχει
- τεθεί, εκτελέστε την εντολή:</para>
-
- <screen>&prompt.root; <userinput>zfs set reservation=none storage/home/bob</userinput></screen>
-
- <para>Μπορείτε να εφαρμόσετε την ίδια βασική αρχή και για να θέσετε
- την ιδιότητα <literal>refreservation</literal>, χρησιμοποιώντας τη
- γενική μορφή
- <literal>refreservation=size</literal>.</para>
-
- <para>Για να ελέγξετε αν υπάρχουν reservations ή refreservations στο
- <filename>storage/home/bob</filename>, εκτελέστε μια από τις
- παρακάτω εντολές:</para>
-
- <screen>&prompt.root; <userinput>zfs get reservation storage/home/bob</userinput>
-&prompt.root; <userinput>zfs get refreservation storage/home/bob</userinput></screen>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="filesystems-linux">
- <title>Συστήματα Αρχείων &linux;</title>
-
- <para>Αυτή η ενότητα περιγράφει κάποια από τα συστήματα αρχείων του
- &linux; που υποστηρίζονται από το &os;.</para>
-
- <sect2>
- <title>Ext2FS</title>
-
- <para>Η υλοποίηση του συστήματος αρχείων &man.ext2fs.5; στον πυρήνα,
- γράφηκε από τον Godmar Back και το πρόγραμμα οδήγησης εμφανίστηκε
- για πρώτη φορά στο &os;&nbsp;2.2. Στο &os;&nbsp;8 και στις
- προηγούμενες εκδόσεις, ο κώδικας ήταν υπό την άδεια
- <acronym>GNU</acronym> Public License, ωστόσο στο &os;&nbsp;9 o
- κώδικας γράφτηκε ξανά και είναι πλέον υπό την άδεια
- <acronym>BSD</acronym>.</para>
-
- <para>Το πρόγραμμα οδήγησης &man.ext2fs.5; επιτρέπει στον πυρήνα του
- &os; τόσο να διαβάζει όσο και να γράφει σε συστήματα αρχείων
- <acronym>ext2</acronym>.</para>
-
- <para>Αρχικά, φορτώστε το άρθρωμα στον πυρήνα:</para>
-
- <screen>&prompt.root; <userinput>kldload ext2fs</userinput></screen>
-
- <para>Για να προσαρτήσετε έπειτα ένα τόμο &man.ext2fs.5; που βρίσκεται
- στο <filename>/dev/ad1s1</filename>:</para>
-
- <screen>&prompt.root; <userinput>mount -t ext2fs /dev/ad1s1 /mnt</userinput></screen>
- </sect2>
-
- <sect2>
- <title>XFS</title>
-
- <para>Το σύστημα αρχείων Χ, <acronym>XFS</acronym> γράφτηκε αρχικά από
- την <acronym>SGI</acronym> για το λειτουργικό <acronym>IRIX</acronym>
- και μεταφέρθηκε στο &linux;. Ο πηγαίος κώδικας είναι διαθέσιμος υπό
- την άδεια <acronym>GNU</acronym> Public License. Δείτε
- <link xlink:href="http://oss.sgi.com/projects/xfs">αυτή τη σελίδα</link>
- για περισσότερες πληροφορίες. Η μεταφορά στο &os; ξεκίνησε από τους
- Russel Cattelan, &a.kan; και &a.rodrigc;.</para>
-
- <para>Για να φορτώσετε το <acronym>XFS</acronym> ως άρθρωμα στον
- πυρήνα:</para>
-
- <screen>&prompt.root; <userinput>kldload xfs</userinput></screen>
-
- <para>Το πρόγραμμα οδήγησης &man.xfs.5; επιτρέπει στον πυρήνα του
- &os; να έχει πρόσβαση σε συστήματα αρχείων XFS. Ωστόσο, τη δεδομένη
- στιγμή, επιτρέπει πρόσβαση μόνο για ανάγνωση. Η εγγραφή δεν είναι
- δυνατή.</para>
-
- <para>Για να προσαρτήσετε ένα τόμο &man.xfs.5; που βρίσκεται στο
- <filename>/dev/ad1s1</filename>, εκτελέστε την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>mount -t xfs /dev/ad1s1 /mnt</userinput></screen>
-
- <para>Καλό είναι επίσης να γνωρίζετε ότι το port <package>sysutils/xfsprogs</package> περιέχει το βοηθητικό
- πρόγραμμα <command>mkfs.xfs</command> το οποίο επιτρέπει τη
- δημιουργία συστημάτων αρχείων <acronym>XFS</acronym>. Το port
- επίσης παρέχει προγράμματα για έλεγχο και επισκευή αυτών των
- συστημάτων αρχείων.</para>
-
- <para>Μπορείτε να χρησιμοποίησετε την παράμετρο <literal>-p</literal>
- στην εντολή <command>mkfs.xfs</command> για να δημιουργήσετε ένα
- σύστημα αρχείων &man.xfs.5; το οποίο να περιέχει αρχεία και άλλα
- μετα-δεδομένα. Mε αυτό τον τρόπο μπορείτε να δημιουργήσετε ένα
- σύστημα αρχείων μόνο ανάγνωσης για δοκιμή με το &os;.</para>
- </sect2>
-
- <sect2>
- <title>ReiserFS</title>
-
- <para>To σύστημα αρχείων Reiser, ReiserFS, μεταφέρθηκε στο &os;
- από τον &a.dumbbell; και είναι υπό την άδεια <acronym>GNU</acronym>
- Public License.</para>
-
- <para>Το πρόγραμμα οδήγησης για το ReiserFS επιτρέπει στον πυρήνα του
- &os; να έχει πρόσβαση ανάγνωσης στα αντίστοιχα συστήματα αρχείων αλλά
- τη δεδομένη στιγμή δεν επιτρέπει εγγραφή δεδομένων.</para>
-
- <para>Φορτώστε αρχικά το άρθρωμα του πυρήνα:</para>
-
- <screen>&prompt.root; <userinput>kldload reiserfs</userinput></screen>
-
- <para>Για να προσαρτήσετε ένα τόμο ReiserFS από το
- <filename>/dev/ad1s1</filename>:</para>
-
- <screen>&prompt.root; <userinput>mount -t reiserfs /dev/ad1s1 /mnt</userinput></screen>
- </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>
diff --git a/el_GR.ISO8859-7/books/handbook/firewalls/chapter.xml b/el_GR.ISO8859-7/books/handbook/firewalls/chapter.xml
deleted file mode 100644
index f8d264efca..0000000000
--- a/el_GR.ISO8859-7/books/handbook/firewalls/chapter.xml
+++ /dev/null
@@ -1,3507 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Firewalls
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/firewalls/chapter.xml
- %SRCID% 39270
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="firewalls">
- <info><title>Firewalls</title>
- <authorgroup>
- <author><personname><firstname>Joseph J.</firstname><surname>Barbish</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Brad</firstname><surname>Davis</surname></personname><contrib>Μετατράπηκε σε SGML και ανανεώθηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>firewall</primary></indexterm>
-
- <indexterm>
- <primary>ασφάλεια</primary>
- <secondary>firewalls</secondary>
- </indexterm>
-
- <sect1 xml: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 xml: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 xml: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>,
- το ρόλο των διαφόρων τιμών στα πεδία ελέγχου των πακέτων και πως
- χρησιμοποιούνται στην ανταλλαγή πληροφοριών σε μια συνηθισμένη
- συνεδρία. Για περισσότερες λεπτομέρειες, διαβάστε το <uri xlink:href="http://www.ipprimer.com/overview.cfm">http://www.ipprimer.com/overview.cfm</uri>.</para>
- </sect1>
-
- <sect1 xml:id="firewalls-pf">
- <info><title>Το Packet Filter (PF) και το <acronym>ALTQ</acronym> του
- OpenBSD</title>
- <authorgroup>
- <author><personname><firstname>John</firstname><surname>Ferrell</surname></personname><contrib>Αναθεωρήθηκε και ενημερώθηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 κάνει εξαιρετική δουλειά στη συντήρηση του
- <link xlink:href="http://www.openbsd.org/faq/pf/">PF FAQ</link>. Για το
- λόγο αυτό, η παρούσα ενότητα του Εγχειριδίου εστιάζει κυρίως στις
- ιδιαιτερότητες του <acronym>PF</acronym> όσο αφορά το &os;, ενώ παρέχει
- και μερικές γενικές πληροφορίες σχετικά με τη χρήση του. Για πιο
- λεπτομερείς πληροφορίες σχετικά με τη χρήση του <acronym>PF</acronym>,
- παρακαλούμε διαβάστε το <link xlink:href="http://www.openbsd.org/faq/pf/">PF FAQ</link>.</para>
-
- <para>Περισσότερες πληροφορίες σχετικά με το <acronym>PF</acronym> στο
- &os; μπορείτε να βρείτε στο <uri xlink:href="http://pf4freebsd.love2party.net/">http://pf4freebsd.love2party.net/</uri>.</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>/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>Επιλογές στο <filename>rc.conf</filename></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>. Παρακαλούμε να
- διαβάσετε το <link xlink:href="http://www.openbsd.org/faq/pf/">PF FAQ</link> για πλήρη
- ανάλυση των κανόνων του <acronym>PF</acronym>.</para>
-
- <warning>
- <para>Καθώς διαβάζετε το <link xlink:href="http://www.openbsd.org/faq/pf/">PF FAQ</link>,
- να έχετε υπόψη σας ότι διαφορετικές εκδόσεις του &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 -e</command></entry>
- <entry>Ενεργοποίηση του PF</entry>
- </row>
-
- <row>
- <entry><command>pfctl -d</command></entry>
- <entry>Απενεργοποίηση του PF</entry>
- </row>
-
- <row>
- <entry><command>pfctl -F all -f /etc/pf.conf</command></entry>
- <entry>Διαγραφή όλων των κανόνων (nat, filter, state, table,
- κ.λ.π.) και εκ νέου ανάγνωση από το αρχείο
- <filename>/etc/pf.conf</filename></entry>
- </row>
-
- <row>
- <entry><command>pfctl -s [ rules | nat | state ]</command></entry>
- <entry>Εκτύπωση αναφοράς σχετικά με τους κανόνες του φίλτρου,
- του NAT, ή του πίνακα κατάστασης</entry>
- </row>
-
- <row>
- <entry><command>pfctl -vnf /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>
- δείτε: <uri xlink:href="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html">http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</uri>.</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 xml: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>Για λεπτομέρειες σχετικά με τον παλιότερο τρόπο επεξεργασίας των
- κανόνων, δείτε: <uri xlink:href="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1">http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1</uri>
- και <uri xlink:href="http://coombs.anu.edu.au/~avalon/ip-filter.html">http://coombs.anu.edu.au/~avalon/ip-filter.html</uri>.</para>
-
- <para>Μπορείτε να δείτε το IPF FAQ στην τοποθεσία <uri xlink:href="http://www.phildev.net/ipf/index.html">http://www.phildev.net/ipf/index.html</uri>.</para>
-
- <para>Μπορείτε να βρείτε τις παλαιότερες δημοσιεύσεις τις λίστας
- ταχυδρομείου του IPFILTER στο <uri xlink:href="http://marc.theaimsgroup.com/?l=ipfilter">http://marc.theaimsgroup.com/?l=ipfilter</uri>. Παρέχεται
- δυνατότητα αναζήτησης.</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, η οποία γράφει στην ψευδο-συσκευή
- καταγραφής πακέτων <filename>ipl</filename> για κάθε κανόνα που
- περιλαμβάνει την επιλογή <literal>log</literal>.</para>
-
- <para>Η επιλογή <literal>options IPFILTER_DEFAULT_BLOCK</literal>
- αλλάζει την προεπιλεγμένη συμπεριφορά, ώστε κάθε πακέτο που δεν
- ταιριάζει με κάποιο κανόνα <literal>pass</literal> του firewall,
- να απορρίπτεται αυτόματα.</para>
-
- <para>Οι παραπάνω επιλογές θα ενεργοποιηθούν μόνο αφού μεταγλωττίσετε
- και εγκαταστήσετε ένα προσαρμοσμένο πυρήνα που να τις
- περιλαμβάνει.</para>
- </sect2>
-
- <sect2>
- <title>Διαθέσιμες Επιλογές για το <filename>rc.conf</filename></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>Το όνομα της διεπαφής στην οποία έγινε η επεξεργασία του
- πακέτου π.χ. <filename>dc0</filename>.</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 xml: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>/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>Οι άδειες σε αυτό το αρχείο, θα πρέπει να επιτρέπουν ανάγνωση,
- εγγραφή και εκτέλεση για τον χρήστη
- <systemitem class="username">root</systemitem>.</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 -->
-
- <filename>ipl</filename> (όπως περιγράφεται στην ενότητα
- 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 διευθύνσεων που
- δεν μπορούν να εκφραστούν εύκολα με τη μορφή αριθμών χωρισμένων με
- τελείες / μάσκας υποδικτύου. Μπορείτε να χρησιμοποιήσετε το
- βοηθητικό πρόγραμμα <package>net-mgmt/ipcalc</package> για διευκόλυνση σας
- στους υπολογισμούς. Δείτε την δικτυακή τοποθεσία του προγράμματος
- για περισσότερες πληροφορίες: <uri xlink:href="http://jodies.de/ipcalc">http://jodies.de/ipcalc</uri>.</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;,
- έχουν σχεδιαστεί να χρησιμοποιούν την διεπαφή
- <filename>lo0</filename> και την IP διεύθυνση
- <systemitem class="ipaddress">127.0.0.1</systemitem> για εσωτερική επικοινωνία
- μέσα στο ίδιο το λειτουργικό σύστημα. Το firewall πρέπει να περιέχει
- κανόνες που να επιτρέπουν την ελεύθερη και χωρίς περιορισμούς κίνηση
- των ειδικών αυτών εσωτερικών πακέτων.</para>
-
- <para>Οι κανόνες που εξουσιοδοτούν την πρόσβαση προς το Internet,
- ορίζονται στην διεπαφή του δικτύου που συνδέεται σε αυτό. Οι κανόνες
- αυτοί ελέγχουν τόσο την εισερχόμενη όσο και την εξερχόμενη κίνηση
- στο Internet. Η διεπαφή αυτή μπορεί να είναι η
- <filename>tun0</filename> που χρησιμοποιείται στο 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> στο παράδειγμα που
- φαίνεται παρακάτω. Το βοηθητικό πρόγραμμα <package>security/nmap</package> χρησιμοποιείται συχνά
- από κακόβουλα άτομα, που προσπαθούν με αυτό τον τρόπο να
- αναγνωρίσουν το λειτουργικό σύστημα του μηχανήματος σας.</para>
-
- <para>Κάθε φορά που υπάρχει καταγραφή από κάποιο κανόνα με την επιλογή
- <literal>log first</literal>, θα πρέπει να εκτελέσετε την εντολή
- <command>ipfstat -hio</command> για να δείτε πόσες φορές έχει
- ενεργοποιηθεί αυτός ο κανόνας συνολικά. Έτσι θα ξέρετε αν π.χ. σας
- κάνουν επίθεση υπερχείλισης (flood).</para>
-
- <para>Δείτε το αρχείο <filename>/etc/services</filename> για να βρείτε
- αριθμούς θυρών που δεν αναγνωρίζετε. Μπορείτε επίσης να επισκεφθείτε
- την τοποθεσία <uri xlink:href="http://www.securitystats.com/tools/portsearch.php">http://www.securitystats.com/tools/portsearch.php</uri>
- και να κάνετε αναζήτηση για τη συγκεκριμένη θύρα, ώστε να δείτε ποια
- υπηρεσία εξυπηρετεί.</para>
-
- <para>Δείτε την επόμενη τοποθεσία για τις θύρες που χρησιμοποιούνται
- συνήθως από κακόβουλα προγράμματα (trojans): <uri xlink:href="http://www.simovits.com/trojans/trojans.html">http://www.simovits.com/trojans/trojans.html</uri>.</para>
-
- <para>Το παρακάτω σύνολο κανόνων είναι αρκετά πλήρες και πολύ ασφαλές.
- Δημιουργεί firewall τύπου <literal>inclusive</literal>, και έχει
- δοκιμαστεί σε πραγματικές συνθήκες λειτουργίας. Μπορεί να
- εξυπηρετήσει το ίδιο καλά και το δικό σας σύστημα. Απλώς μετατρέψτε
- σε σχόλιο τους κανόνες για τις υπηρεσίες που δεν θέλετε να
- ενεργοποιήσετε.</para>
-
- <para>Για να αποφύγετε την καταγραφή ανεπιθύμητων μηνυμάτων,
- απλώς προσθέστε ένα αντίστοιχο κανόνα απόρριψης
- (<literal>block</literal>) στην ενότητα των εισερχομένων
- (inbound).</para>
-
- <para>Θα πρέπει να αλλάξετε το όνομα της διεπαφής
- <filename>dc0</filename> του παραδείγματος, με το πραγματικό όνομα
- της κάρτας δικτύου που συνδέει το σύστημα σας με το Internet. Για
- όσους χρησιμοποιούν το PPP χρήστη, το όνομα θα είναι
- <filename>tun0</filename>.</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="3">
- <colspec colwidth="1*"/>
-
- <colspec colwidth="1*"/>
-
- <colspec colwidth="1*"/>
-
- <tbody>
- <row>
- <entry>Αρχικό IP <systemitem class="ipaddress">10.0.0.0</systemitem></entry>
-
- <entry>-</entry>
-
- <entry>Τελικό IP <systemitem class="ipaddress">10.255.255.255</systemitem></entry>
- </row>
-
- <row>
- <entry>Αρχικό IP <systemitem class="ipaddress">172.16.0.0</systemitem></entry>
-
- <entry>-</entry>
-
- <entry>Τελικό IP <systemitem class="ipaddress">172.31.255.255</systemitem></entry>
- </row>
-
- <row>
- <entry>Αρχικό IP <systemitem class="ipaddress">192.168.0.0</systemitem></entry>
-
- <entry>-</entry>
-
- <entry>Τελικό IP <systemitem class="ipaddress">192.168.255.255</systemitem></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> είναι η
- περιοχή διευθύνσεων που χρησιμοποιείται από το εσωτερικό σας δίκτυο.
- Στην πραγματικότητα θα μοιάζει με κάτι σαν το <systemitem class="ipaddress">192.168.1.0/24</systemitem>.</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 <systemitem class="ipaddress">10.0.10.25</systemitem> και η μοναδική δημόσια IP
- είναι <systemitem class="ipaddress">20.20.20.5</systemitem>. Ο κανόνας που θα
- γράφατε θα έμοιαζε με τον παρακάτω:</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 με διεύθυνση στο τοπικό δίκτυο <systemitem class="ipaddress">10.0.10.33</systemitem> ο οποίος πρέπει να δέχεται
- αναζητήσεις από το δημόσιο δίκτυο:</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 έχει δυο καταστάσεις λειτουργίας, την ενεργή και την
- παθητική. Η διαφορά είναι στο πως γίνεται η ανάκτηση του καναλιού
- δεδομένων. Η παθητική λειτουργία είναι πιο ασφαλής, καθώς το
- κανάλι δεδομένων αποτελεί το κύριο κανάλι της συνεδρίας. Μπορείτε να
- βρείτε πολύ καλή περιγραφή του πρωτοκόλλου και των διαφορετικών τρόπων
- λειτουργίας του, στο <uri xlink:href="http://www.slacksite.com/other/ftp.html">http://www.slacksite.com/other/ftp.html</uri>.</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 xml: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 xml: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 μέσα στον πυρήνα.</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 xml: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;. Ο σκοπός αυτής της
- παρουσίασης είναι καθαρά ενημερωτικός.</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 xml: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>filename</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 xml: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 NUM</userinput></screen>
- </sect2>
-
- <sect2 xml: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 xml: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). Πρόκειται για υποχρεωτική
- παράμετρο. Μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
- <package>net-mgmt/ipcalc</package> για
- διευκόλυνση σας στους υπολογισμούς. Δείτε την δικτυακή τοποθεσία
- του προγράμματος για περισσότερες πληροφορίες: <uri xlink:href="http://jodies.de/ipcalc">http://jodies.de/ipcalc</uri>.</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 xml: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;, έχουν σχεδιαστεί να χρησιμοποιούν τη διεπαφή
- <filename>lo0</filename> και τη διεύθυνση IP
- <systemitem class="ipaddress">127.0.0.1</systemitem> για εσωτερική επικοινωνία
- με το λειτουργικό σύστημα. Το firewall πρέπει να περιέχει κανόνες
- που να επιτρέπουν την απρόσκοπτη κίνηση αυτών των ειδικών, για
- εσωτερική χρήση, πακέτων.</para>
-
- <para>Οι κανόνες που ορίζουν την πρόσβαση εισερχόμενων και
- εξερχόμενων πακέτων, γράφονται για τη διεπαφή που συνδέεται στο
- δημόσιο Internet. Η διεπαφή αυτή μπορεί να είναι για παράδειγμα η
- <filename>tun0</filename> (σε περίπτωση που χρησιμοποιείτε το
- <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> ή δείτε το <uri xlink:href="http://www.securitystats.com/tools/portsearch.php">http://www.securitystats.com/tools/portsearch.php</uri>
- και αναζητήστε τον αριθμό της θύρας για να δείτε ποιος είναι ο
- σκοπός της. Ελέγξτε την παρακάτω τοποθεσία για τους αριθμούς θυρών
- που χρησιμοποιούνται συχνά από κακόβουλα προγράμματα (Trojans):
- <uri xlink:href="http://www.simovits.com/trojans/trojans.html">http://www.simovits.com/trojans/trojans.html</uri>.</para>
- </sect3>
-
- <sect3>
- <title>Ένα Υπόδειγμα Συνόλου Κανόνων Inclusive</title>
-
- <para>Το παρακάτω σύνολο κανόνων (στο οποίο δεν υλοποιείται λειτουργία
- <acronym>NAT</acronym>) είναι αρκετά πλήρες και πολύ ασφαλές.
- Δημιουργεί firewall τύπου inclusive, και έχει δοκιμαστεί σε
- πραγματικές συνθήκες λειτουργίας. Μπορεί να εξυπηρετήσει το ίδιο
- καλά και το δικό σας σύστημα. Απλώς μετατρέψτε σε σχόλιο τους
- κανόνες <literal>pass</literal> για τις υπηρεσίες που δεν θέλετε
- να ενεργοποιήσετε. Για να αποφύγετε την καταγραφή ανεπιθύμητων
- μηνυμάτων, απλώς προσθέστε ένα κανόνα τύπου
- <literal>deny</literal> στην ενότητα των εισερχομένων. Σε όλους
- τους κανόνες, Θα πρέπει να αλλάξετε το όνομα της διεπαφής από
- <filename>dc0</filename> στο πραγματικό όνομα της διεπαφής που
- συνδέεται στο δημόσιο Internet. Σε περίπτωση που χρησιμοποιείτε το
- <acronym>PPP</acronym> χρήστη, το όνομα της διεπαφής θα είναι
- <filename>tun0</filename>.</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 όνομα-διεπαφής</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>
diff --git a/el_GR.ISO8859-7/books/handbook/geom/chapter.xml b/el_GR.ISO8859-7/books/handbook/geom/chapter.xml
deleted file mode 100644
index 4d6b06a1ed..0000000000
--- a/el_GR.ISO8859-7/books/handbook/geom/chapter.xml
+++ /dev/null
@@ -1,996 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: GEOM: Διαχείριση Συστοιχιών Δίσκων
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/geom/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="GEOM">
- <info><title>GEOM: Διαχείριση Συστοιχιών Δίσκων</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφτηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml:id="GEOM-intro">
- <title>Εισαγωγή στο GEOM</title>
-
- <para>Το GEOM επιτρέπει την πρόσβαση και τον έλεγχο σε κλάσεις &mdash;
- όπως την Κεντρική Εγγραφή Εκκίνησης (Master Boot Record), τα
- <acronym>BSD</acronym> labels, κ.α. &mdash; μέσω της χρήσης παροχέων,
- ή μέσω ειδικών αρχείων στον κατάλογο
- <filename>/dev</filename>. Το GEOM υποστηρίζει
- διάφορες διατάξεις <acronym>RAID</acronym> και παρέχει διάφανη
- πρόσβαση στο λειτουργικό σύστημα και τα βοηθητικά του
- προγράμματα.</para>
- </sect1>
-
- <sect1 xml:id="GEOM-striping">
- <info><title>RAID0 - Striping</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τους </contrib></author>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <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>/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>Η διαδικασία αυτή θα δημιουργήσει τη συσκευή
- <filename>st0</filename>, καθώς και δύο ακόμα συσκευές στον
- κατάλογο <filename>/dev/stripe</filename>.
- Οι συσκευές αυτές θα ονομάζονται <filename>st0a</filename> και
- <filename>st0c</filename>. Στο σημείο αυτό, μπορείτε πλέον να
- δημιουργήσετε σύστημα αρχείων στη συσκευή
- <filename>st0a</filename> χρησιμοποιώντας το βοηθητικό πρόγραμμα
- <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>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 xml: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; έχει εγκατασταθεί στον πρώτο δίσκο
- <filename>da0</filename>, θα πρέπει να ρυθμίσετε το
- &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>/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>Με την επιτυχή εκτέλεση αυτής της εντολής, δημιουργείται η
- συσκευή <filename>gm0</filename> μέσα στον κατάλογο
- <filename>/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>,
- αντικαθιστώντας τις αναφορές στις παλιές συσκευές
- <filename>da0</filename> με τις αντίστοιχες καινούριες
- <filename>gm0</filename> που αντιπροσωπεύουν το 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>. Έπειτα αντικαταστήστε
- όλες τις αναφορές στις παλιές συσκευές <filename>da0</filename>
- με τις νέες <filename>gm0</filename> γράφοντας
- <userinput>:%s/da/mirror\/gm/g</userinput>.</para>
- </note>
-
- <para>Το <filename>fstab</filename> που θα προκύψει, θα μοιάζει με
- το παρακάτω. Δεν έχει σημασία αν οι δίσκοι ήταν αρχικά
- <acronym>SCSI</acronym> ή <acronym>ATA</acronym>, η συσκευή
- <acronym>RAID</acronym> θα έχει πάντα το όνομα
- <filename>gm</filename>.</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>Κατά την εκκίνηση του συστήματος, θα πρέπει πλέον να
- χρησιμοποιείται η συσκευή <filename>gm0</filename> αντί για την
- <filename>da0</filename>. Μετά το τέλος της εκκίνησης, μπορείτε
- να ελέγξετε ότι όλα λειτουργούν σωστά, εξετάζοντας την έξοδο της
- εντολής <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>Η έξοδος φαίνεται σωστή, όπως αναμενόταν. Τελικά, για να
- ξεκινήσει ο συγχρονισμός, εισάγετε και την συσκευή
- <filename>da1</filename> στο 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&gt;</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 που δείξαμε προηγουμένως, ας θεωρήσουμε ότι
- χάλασε ο δίσκος <filename>da1</filename> και πρέπει να
- αντικατασταθεί. Για να τον αντικαταστήσετε, βρείτε ποιος δίσκος είναι
- και απενεργοποιήστε το σύστημα. Στο σημείο αυτό, μπορείτε πλέον να
- ανταλλάξετε το δίσκο με ένα νέο και να ενεργοποιήσετε ξανά το
- σύστημα. Μετά την επανενεργοποίηση του συστήματος, μπορείτε να
- χρησιμοποιήσετε τις παρακάτω εντολές για να θέσετε σε λειτουργία το
- νέο δίσκο:</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 xml:id="GEOM-raid3">
- <info><title><acronym>RAID</acronym>3 - Striping σε Επίπεδο Byte με Αφοσιωμένο
- Parity</title>
- <authorgroup>
- <author><personname><firstname>Mark</firstname><surname>Gladman</surname></personname><contrib>Γράφηκε από </contrib></author>
-
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Βασισμένο στην τεκμηρίωση των </contrib></author>
-
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>GEOM</primary>
- </indexterm>
- <indexterm>
- <primary>RAID3</primary>
- </indexterm>
-
- <para>Το <acronym>RAID</acronym>3 είναι μια μέθοδος που συνδυάζει
- αρκετούς διαφορετικούς σκληρούς δίσκους σε ένα τόμο με ένα δίσκο
- αφοσιωμένο στην ισοτιμία (parity). Σε ένα σύστημα
- <acronym>RAID</acronym>3, τα δεδομένα χωρίζονται σε ένα αριθμό από
- bytes που εγγράφονται σε όλους τους δίσκους της συστοιχίας εκτός από
- ένα που χρησιμοποιείται αποκλειστικά ως δίσκος ισοτιμίας. Αυτό
- σημαίνει ότι για να διαβάσουμε 1024KB από μια υλοποίηση του
- <acronym>RAID</acronym>3 θα πρέπει να προσπελάσουμε όλους τους
- δίσκους της συστοιχίας. Η απόδοση αυξάνεται με τη χρήση χωριστών
- ελεγκτών σκληρών δίσκων. Η συστοιχία <acronym>RAID</acronym>3
- προσφέρει ανοχή σε βλάβη ενός δίσκου ενός παρέχει χωρητικότητα
- 1 - 1/n φορές τη χωρητικότητα όλων των δίσκων της συστοιχίας, όπου
- n είναι το πλήθος των δίσκων που την απαρτίζουν. Αυτού του είδους
- οι συστοιχίες είναι κατάλληλες για αποθήκευση μεγάλων αρχείων, για
- παράδειγμα αρχείων πολυμέσων.</para>
-
- <para>Χρειάζονται τουλάχιστον 3 φυσικοί σκληροί δίσκοι για τη δημιουργία
- μια συστοιχίας <acronym>RAID</acronym>3. Κάθε δίσκος θα πρέπει να
- είναι το ίδιο μέγεθος καθώς οι αιτήσεις Ι/Ο (εισόδου/εξόδου)
- εναλλάσσονται ώστε να γίνεται εγγραφή και ανάγνωση σε πολλαπλούς δίσκους
- παράλληλα. Επίσης, εξαιτίας της φύσης του <acronym>RAID</acronym>3,
- ο αριθμός των δίσκων πρέπει να είναι 3, 5, 9, 17 κλπ. (2^n+1).</para>
-
- <sect2>
- <title>Δημιουργία Συστοιχίας <acronym>RAID</acronym>3</title>
-
- <para>Στο &os;, η υποστήριξη για <acronym>RAID</acronym>3 υλοποιείται
- μέσω της κλάσης &man.graid3.8; του <acronym>GEOM</acronym>.
- Η δημιουργία μιας συστοιχίας <acronym>RAID</acronym>3 στο &os; απαιτεί
- τα παρακάτω βήματα.</para>
-
- <note>
- <para>Αν και είναι θεωρητικά δυνατό να φτιάξετε μια εκκινήσιμη
- συστοιχία <acronym>RAID</acronym>3 στο &os;, δεν συνίσταται καθώς
- πρόκειται για ασυνήθιστη λειτουργία.</para>
- </note>
-
- <procedure>
- <step>
- <para>Αρχικά, φορτώστε το <filename>geom_rai3.ko</filename>
- άρθρωμα του πυρήνα μέσω της ακόλουθης εντολής:</para>
-
- <screen>&prompt.root; <userinput>graid3 load</userinput></screen>
-
- <para>Εναλλακτικά, είναι δυνατόν να φορτώσετε το άρθρωμα
- χειροκίνητα:</para>
-
- <screen>&prompt.root; <userinput>kldload geom_raid3.ko</userinput></screen>
- </step>
-
- <step>
- <para>Εξασφαλίστε ότι υπάρχει κατάλληλο σημείο προσάρτησης, ή
- δημιουργήστε ένα καινούριο:</para>
-
- <screen>&prompt.root; <userinput>mkdir /multimedia</userinput></screen>
- </step>
-
- <step>
- <para>Προσδιορίστε τα ονόματα συσκευών των δίσκων που θα προστεθούν
- στη συστοιχία και δημιουργήστε τη νέα συσκευή
- <acronym>RAID</acronym>3. Στο παράδειγμα μας χρησιμοποιούμε
- τρεις οδηγούς <acronym>ATA</acronym> οι οποίοι δεν περιέχουν
- κατατμήσεις:
- <filename>ada1</filename> και
- <filename>ada2</filename> για τα
- δεδομένα και
- <filename>ada3</filename> για το
- parity.</para>
-
- <screen>&prompt.root; <userinput>graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3</userinput>
-Metadata value stored on /dev/ada1
-Metadata value stored on /dev/ada2
-Metadata value stored on /dev/ada3
-Done.</screen>
- </step>
-
- <step>
- <para>Δημιουργήστε κατατμήσεις στη νέα συσκευή
- <filename>gr0</filename> και διαμορφώστε την με σύστημα
- αρχείων UFS:</para>
-
- <screen>&prompt.root; <userinput>gpart create -s GPT /dev/raid3/gr0</userinput>
-&prompt.root;<userinput> gpart add -t freebsd-ufs /dev/raid3/gr0</userinput>
-&prompt.root;<userinput> newfs -j /dev/raid3/gr0p1</userinput></screen>
-
- <para>Θα δείτε μεγάλο πλήθος αριθμών να περνάει από την οθόνη σας
- και μετά από λίγο η διαδικασία θα ολοκληρωθεί. Ο τόμος έχει
- πλέον δημιουργηθεί και είναι έτοιμος να προσαρτηθεί.</para>
- </step>
-
- <step>
- <para>Το τελευταίο βήμα είναι η προσάρτηση του συστήματος
- αρχείων:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia</userinput></screen>
-
- <para>Η συστοιχία <acronym>RAID</acronym>3 είναι τώρα έτοιμη προς
- χρήση.</para>
- </step>
- </procedure>
-
- <para>Θα χρειαστεί να κάνετε επιπλέον ρυθμίσεις ώστε η συστοιχία να
- είναι άμεσα διαθέσιμη μετά από κάθε εκκίνηση του υπολογιστή
- σας.</para>
-
- <procedure>
- <step>
- <para>Το άρθρωμα <filename>geom_raid3.ko</filename> θα πρέπει να
- φορτώνεται πριν την προσάρτηση της συστοιχίας. Για να φορτώνεται
- αυτόματα κατά την εκκίνηση του συστήματος, προσθέστε την παρακάτω
- γραμμή στο <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>geom_raid3_load="YES"</programlisting>
- </step>
-
- <step>
- <para>Θα πρέπει να προσθέσετε τις παρακάτω πληροφορίες σχετικά
- με τον τόμο στο αρχείο <filename>/etc/fstab</filename> ώστε η
- προσάρτηση του συστήματος αρχείων της συστοιχίας να γίνεται
- αυτόματα κατά τη διαδικασία εκκίνησης του συστήματος:</para>
-
- <programlisting>/dev/raid3/gr0p1 /multimedia ufs rw 2 2</programlisting>
- </step>
- </procedure>
- </sect2>
- </sect1>
-
- <sect1 xml: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>Το παραπάνω θα επιτρέψει σε όλους τους υπολογιστές του ιδιωτικού
- σας δικτύου, να έχουν πρόσβαση μέσω δικτύου στο σύστημα αρχείων της
- κατάτμησης <filename>da0s4d</filename>.</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>/mnt</filename>.</para>
-
- <note>
- <para>Πρέπει να τονιστεί ότι η διαδικασία θα αποτύχει αν η συσκευή
- είναι τη δεδομένη στιγμή προσαρτημένη, είτε στον εξυπηρετητή, είτε σε
- οποιοδήποτε άλλο υπολογιστή στο δίκτυο.</para>
- </note>
-
- <para>Όταν δεν χρειάζεστε πλέον τη συσκευή, μπορείτε να την
- αποπροσαρτήσετε με ασφάλεια, χρησιμοποιώντας την εντολή &man.umount.8;,
- όπως γίνεται και με οποιαδήποτε άλλη συσκευή δίσκου.</para>
- </sect1>
-
- <sect1 xml:id="geom-glabel">
- <title>Δημιουργώντας Ετικέτες (Labels) στις Συσκευές Δίσκων</title>
-
- <indexterm>
- <primary>GEOM</primary>
- </indexterm>
- <indexterm>
- <primary>Disk Labels</primary>
- </indexterm>
-
- <para>Κατά τη διάρκεια της αρχικοποίησης, στην εκκίνηση του συστήματος,
- ο πυρήνας του &os; θα δημιουργήσει τα απαραίτητα αρχεία για κάθε
- συσκευή που ανιχνεύει. Αυτή η μέθοδος ανίχνευσης συσκευών, μπορεί να
- δημιουργήσει προβλήματα. Για παράδειγμα, τι θα γίνει αν προσθέσουμε ένα
- νέο δίσκο <acronym>USB</acronym>; Είναι αρκετά πιθανό μια συσκευή
- μνήμης flash να πάρει το όνομα <filename>da0</filename> και η
- αρχική <filename>da0</filename> να μετακινηθεί στο
- <filename>da1</filename>. Αυτό θα προκαλέσει προβλήματα στην
- προσάρτηση των συστημάτων αρχείων, αν υπάρχουν οι αντίστοιχες
- καταχωρίσεις τους στο <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>/dev</filename>.
- Για παράδειγμα, οι ετικέτες συσκευών με σύστημα αρχείων
- <acronym>UFS</acronym>2, θα δημιουργηθούν στον κατάλογο <filename>/dev/ufs</filename>. Μόνιμες ετικέτες μπορούν
- επίσης να δημιουργηθούν με χρήση της εντολής
- <command>glabel label</command>. Οι ετικέτες αυτές δεν εξαρτώνται από
- το σύστημα αρχείων, και δημιουργούνται στον κατάλογο
- <filename>/dev/label</filename>.</para>
-
- <para>Οι ετικέτες προσωρινού τύπου, χάνονται σε κάθε επανεκκίνηση του
- συστήματος. Οι ετικέτες αυτές δημιουργούνται στον κατάλογο
- <filename>/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 home /dev/da3</userinput></screen>
-
- <warning>
- <para>Αν το σύστημα αρχείων είναι γεμάτο, η παραπάνω εντολή μπορεί να
- προκαλέσει καταστροφή δεδομένων. Ωστόσο, αν το σύστημα αρχείων
- είναι γεμάτο, στόχος σας θα πρέπει να είναι να διαγράψετε τα
- αρχεία που δεν χρησιμοποιούνται, και όχι να προσθέτετε
- ετικέτες.</para>
- </warning>
-
- <para>Θα πρέπει τώρα να υπάρχει μια ετικέτα στον κατάλογο
- <filename>/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>, ο οποίος
- αναγνωρίζεται από το σύστημα ως <filename>ad0</filename>.
- Θεωρούμε επίσης ότι χρησιμοποιείται η συνηθισμένη διάταξη
- κατατμήσεων του &os;, που περιλαμβάνει τις κατατμήσεις
- <filename>/</filename>,
- <filename>/var</filename>,
- <filename>/usr</filename> και
- <filename>/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>/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>Στο παραπάνω παράδειγμα, το <filename>ad4s1d</filename>
- αντιπροσωπεύει το σύστημα αρχείων <filename>/var</filename>, ενώ το
- <filename>ad4s1f</filename> αντιπροσωπεύει το σύστημα αρχείων
- <filename>/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 xml: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 σε ένα ελεύθερο σύστημα αρχείων, μπορεί τώρα
- να γίνει με τα ακόλουθα βήματα, θεωρώντας ότι η συσκευή
- <filename>da4</filename> είναι ένας νέος δίσκος
- <acronym>SCSI</acronym>:</para>
-
- <screen>&prompt.root; <userinput>gjournal load</userinput>
-&prompt.root; <userinput>gjournal label /dev/da4</userinput></screen>
-
- <para>Στο σημείο αυτό θα υπάρχει μια συσκευή
- <filename>/dev/da4</filename> καθώς και μια συσκευή
- <filename>/dev/da4.journal</filename>. Στη συσκευή αυτή μπορείτε
- τώρα να δημιουργήσετε σύστημα αρχείων:</para>
-
- <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen>
-
- <para>Η παραπάνω εντολή θα δημιουργήσει ένα σύστημα αρχείων
- <acronym>UFS</acronym>2 στη
- συσκευή <filename>/dev/da4.journal</filename>, η οποία έχει
- ήδη υποστήριξη για journaling.</para>
-
- <para>Μπορείτε να χρησιμοποιήσετε την εντολή <command>mount</command>
- για να προσαρτήσετε την συσκευή στο επιθυμητό σημείο προσάρτησης, όπως
- φαίνεται παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/da4.journal /mnt</userinput></screen>
-
- <note>
- <para>Στην περίπτωση αρκετών slice, θα δημιουργηθεί ένα journal για κάθε
- επιμέρους slice. Για παράδειγμα, αν υπάρχουν τα slices
- <filename>ad4s1</filename> και <filename>ad4s2</filename>
- τότε το <command>gjournal</command> θα δημιουργήσει τις συσκευές
- <filename>ad4s1.journal</filename> και
- <filename>ad4s2.journal</filename>.</para>
- </note>
-
- <para>Για καλύτερη απόδοση, ίσως είναι επιθυμητή η τήρηση του
- journal σε διαφορετικό δίσκο. Για τις περιπτώσεις αυτές, ο παροχέας
- ημερολογίου (η συσκευή δίσκου που θα περιέχει το journal) πρέπει
- να δίνεται ως παράμετρος στην εντολή, αμέσως μετά τη συσκευή δίσκου
- στην οποία θα ενεργοποιηθεί το journaling. Μπορείτε επίσης να
- ενεργοποιήσετε το journaling σε υπάρχοντα συστήματα αρχείων
- χρησιμοποιώντας την εντολή <command>tunefs</command>. Ωστόσο, θα πρέπει
- να κρατήσετε αντίγραφο ασφαλείας των αρχείων σας, πριν επιχειρήσετε
- να κάνετε αλλαγές σε ένα υπάρχον σύστημα αρχείων. Στις περισσότερες
- περιπτώσεις, η <command>tunefs</command> θα αποτύχει αν δεν μπορέσει
- να δημιουργήσει το journal, αλλά αυτό δεν σας προστατεύει από απώλεια
- δεδομένων που μπορεί να προέλθει από κακή χρήση της
- <command>tunefs</command>.</para>
-
- <para>Είναι επίσης δυνατόν να χρησιμοποιηθεί journaling στον δίσκο
- εκκίνησης ενός συστήματος &os;. Διαβάστε το άρθρο <link xlink:href="&url.articles.gjournal-desktop;">Υλοποίηση του UFS Journaling σε
- ένα Desktop Υπολογιστή</link> για λεπτομερείς οδηγίες.</para>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/install/chapter.xml b/el_GR.ISO8859-7/books/handbook/install/chapter.xml
deleted file mode 100644
index f161b0710e..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/chapter.xml
+++ /dev/null
@@ -1,5166 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εγκαθιστώντας το FreeBSD
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/install/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="install">
- <info><title>Εγκατάσταση του &os;&nbsp;8.<replaceable>x</replaceable> και
- Προγενέστερων Εκδόσεων</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Ανασχηματισμένο, αναδιοργανωμένο, και μερικώς
- ξαναγραμμένο από τον </contrib></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Randy</firstname><surname>Pratt</surname></personname><contrib>Η βήμα προς βήμα διαδικασία του sysinstall, οι εικόνες, και
- γενικές διορθώσεις κειμένου από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 xml:id="install-hardware">
- <title>Απαιτήσεις Υλικού</title>
-
- <sect2 xml: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 xml:id="install-hardware-supported">
- <title>Υποστηριζόμενο Υλικό</title>
-
- <para>Η λίστα με το υποστηριζόμενο υλικό, παρέχεται στις Σημειώσεις
- Υλικού (Hardware Notes) με κάθε έκδοση του &os;. Το έγγραφο αυτό
- μπορεί συνήθως να βρεθεί με όνομα αρχείου
- <filename>HARDWARE.TXT</filename>, στον ριζικό
- κατάλογο μια διανομής CDROM ή FTP, ή και στο μενού documentation του
- <application>sysinstall</application>. Για κάθε αρχιτεκτονική,
- θα βρείτε μια λίστα συσκευών οι οποίες επιβεβαιωμένα υποστηρίζονται
- από το &os;. Αντίγραφα του καταλόγου υποστηριζόμενου υλικού για
- διάφορες εκδόσεις και αρχιτεκτονικές μπορούν επίσης να βρεθούν στη
- σελίδα <link xlink:href="http://www.FreeBSD.org/releases/index.html">Πληροφοριών
- Έκδοσης</link> στο δικτυακό τόπο του &os;.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="install-pre">
- <title>Εργασίες πριν την Εγκατάσταση</title>
-
- <sect2 xml: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/>
- </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 xml:id="install-where">
- <title>Αποφασίστε που θα Εγκαταστήσετε το &os;</title>
-
- <para>Αν θέλετε το &os; να χρησιμοποιήσει ολόκληρο το σκληρό σας δίσκο,
- δεν υπάρχει κάτι άλλο που πρέπει να κάνετε αυτή τη στιγμή &mdash;
- μπορείτε να παραλείψετε αυτό το τμήμα.</para>
-
- <para>Αν ωστόσο θέλετε το &os; να συνυπάρχει με άλλα λειτουργικά
- συστήματα, πρέπει να κατανοείτε χονδρικά τον τρόπο διάταξης των
- δεδομένων στο δίσκο, και τις επιδράσεις που μπορεί προκαλέσει.</para>
-
- <sect3 xml: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> σε κάθε πρωτεύουσα και
- λογική κατάτμηση, ξεκινώντας από το γράμμα
- <filename>C:</filename>.</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, όπως για παράδειγμα το
- <link xlink:href="http://www.sysresccd.org/">SystemRescueCD</link>.</para>
-
- <para>Έχουν αναφερθεί προβλήματα κατά την αλλαγή μεγέθους κατατμήσεων
- των &microsoft; Vista. Συνίσταται να έχετε πρόχειρο ένα CDROM
- εγκατάστασης των Vista πριν επιχειρήσετε αυτή τη διαδικασία. Όπως
- και με όλες τις αντίστοιχες διαδικασίες δίσκων, συνίσταται επίσης
- να έχετε ένα ενημερωμένο σετ αντιγράφων ασφαλείας.</para>
-
- <warning>
- <para>Λανθασμένη χρήση των εργαλείων αυτών μπορεί να οδηγήσει σε
- διαγραφή των δεδομένων του δίσκου σας. Πριν τα χρησιμοποιήσετε,
- βεβαιωθείτε ότι έχετε πρόσφατα αντίγραφα ασφαλείας τα οποία
- δουλεύουν.</para>
- </warning>
-
- <example>
- <title>Χρησιμοποιώντας μια Υπάρχουσα Κατάτμηση χωρίς να την
- Αλλάξετε</title>
-
- <para>Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο σκληρό δίσκο
- 4&nbsp;GB στον οποίο έχετε ήδη εγκατεστημένη μια έκδοση των
- &windows; και τον έχετε χωρίσει σε δύο οδηγούς με γράμματα
- <filename>C:</filename> και <filename>D:</filename>,
- καθένα με μέγεθος 2&nbsp;GB. Έχετε 1&nbsp;GB δεδομένων στο
- <filename>C:</filename> και 0.5&nbsp;GB δεδομένων στο
- <filename>D:</filename>.</para>
-
- <para>Αυτό σημαίνει ότι ο δίσκος σας έχει δύο κατατμήσεις, μία ανά
- γράμμα οδηγού. Μπορείτε να αντιγράψετε όλα τα υπάρχοντα δεδομένα
- σας από τον
- <filename>D:</filename> στο <filename>C:</filename> και
- να ελευθερώσετε έτσι την δεύτερη κατάτμηση, ώστε να είναι έτοιμη
- για το &os;.</para>
- </example>
-
- <example>
- <title>Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση</title>
-
- <para>Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο δίσκο 4&nbsp;
- GB στον οποίο έχετε ήδη εγκαταστήσει μια έκδοση των &windows;.
- Όταν εγκαταστήσατε τα &windows;, δημιουργήσατε μια μεγάλη
- κατάτμηση με το γράμμα <filename>C:</filename> και μέγεθος
- 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; θα είναι όσο πιο σταθερή γίνεται, ορισμένες φορές στη
- διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες περιπτώσεις, τα
- λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης. Καθώς τα προβλήματα
- αυτά γίνονται αντιληπτά και επιδιορθώνονται, σημειώνονται στα
- <link xlink:href="http://www.FreeBSD.org/releases/&rel.current;R/errata.html">Παροράματα &os; (&os; Errata)</link> τα οποία βρίσκονται στην δικτυακή
- τοποθεσία του &os;. Πριν ξεκινήσετε την εγκατάσταση, Θα πρέπει να
- ελέγξετε τα Παροράματα για να βεβαιωθείτε ότι δεν υπάρχουν προβλήματα
- της τελευταίας στιγμής τα οποία θα έπρεπε να γνωρίζετε.</para>
-
- <para>Πληροφορίες για όλες τις εκδόσεις, περιλαμβανομένων και των
- παροραμάτων για κάθε μία, μπορούν να βρεθούν στη σελίδα <link xlink:href="&url.base;/releases/index.html">πληροφοριών έκδοσης</link>
- της <link xlink:href="&url.base;/index.html">δικτυακής τοποθεσίας του &os;</link>.</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 xml: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>Για το &os;&nbsp;8.<replaceable>X</replaceable> μπορείτε να
- κατεβάσετε το αρχείο εικόνας από τον κατάλογο
- <filename>ISO-IMAGES/</filename> στην τοποθεσία
- <literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/arch/ISO-IMAGES/version/&os;-version-RELEASE-arch-memstick.img</literal>.
- Αντικαταστήστε το <replaceable>arch</replaceable> και το
- <replaceable>version</replaceable> με την αρχιτεκτονική και την
- έκδοση που επιθυμείτε να εγκαταστήσετε. Για παράδειγμα, τα αρχεία
- για το &os;/&arch.i386;&nbsp;&rel2.current;-RELEASE είναι
- διαθέσιμα στην τοποθεσία <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-memstick.img">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel2.current;-RELEASE-&arch.i386;-memstick.img</uri>.</para>
-
- <tip>
- <para>Για το &os;&nbsp;9.0-RELEASE και νεότερες εκδόσεις,
- χρησιμοποιείται διαφορετικός κατάλογος. Για περισσότερες
- πληροφορίες σχετικά με την ανάκτηση και εγκατάσταση του
- &os;&nbsp;9.0-RELEASE και μεταγενέστερων εκδόσεων, δείτε
- το <xref linkend="bsdinstall"/>.</para>
- </tip>
-
- <para>Το αρχείο που προορίζεται για χρήση με μνήμη USB, έχει
- κατάληξη <filename>.img</filename>. Ο κατάλογος
- <filename>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>/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;-&rel2.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 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. Μπορείτε να το κατεβάσετε από την τοποθεσία
- <uri xlink:href="https://launchpad.net/win32-image-writer/">https://launchpad.net/win32-image-writer/</uri>
- και να το αποσυμπιέσετε σε ένα φάκελο.</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/arch/version-RELEASE/floppies/</literal>.
- Αντικαταστήστε τα <replaceable>arch</replaceable> και
- <replaceable>version</replaceable>
- με την αρχιτεκτονική και τον αριθμό της έκδοσης που θέλετε να
- εγκαταστήσετε αντίστοιχα. Για παράδειγμα τα images των δισκετών
- εκκίνησης για &os;/&arch.i386;&nbsp;&rel2.current;-RELEASE είναι
- διαθέσιμα από την τοποθεσία <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/floppies/">ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/floppies/</uri>.</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 είναι στο γράμμα <filename>E:</filename>,
- θα εκτελέσετε την εξής εντολή:</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
- <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename>tools</filename> directory</link>του &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>
- αναφέρεται στην πρώτη μονάδα δισκέτας
- (τον οδηγό <filename>A:</filename>).
- Η συσκευή <filename>/dev/fd1</filename> θα ήταν ο οδηγός
- <filename>B:</filename>, κ.ο.κ. Άλλες παραλλαγές του &unix;
- μπορεί να χρησιμοποιούν διαφορετικά ονόματα για τους οδηγούς
- δισκέτας και θα χρειαστεί να ελέγξετε την τεκμηρίωση του
- συστήματος σας κατά περίπτωση.</para>
- </step>
- </procedure>
-
- <para>Είστε τώρα έτοιμοι να ξεκινήσετε την εγκατάσταση του &os;.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml:id="install-starting">
- <title>Εκκίνηση</title>
-
- <sect3 xml: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 xml:id="boot-loader-menu">
- <title>Μενού Εκκίνησης (&os; Boot Loader)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/boot-loader-menu"/>
- </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>
-
- <screen><prompt>ok </prompt><co xml:id="prompt-single"/>
-<prompt>ok {0} </prompt><co xml:id="prompt-smp"/></screen>
-
- <calloutlist>
- <callout arearefs="prompt-single">
- <para>Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα με
- μία CPU.</para>
- </callout>
-
- <callout arearefs="prompt-smp">
- <para>Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα
- SMP, το ψηφίο δείχνει τον αριθμό της ενεργής CPU.</para>
- </callout>
- </calloutlist>
-
- <para>Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό, και από την
- προτροπή της PROM, γράψτε <command>boot cdrom</command>.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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 xml: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 xml:id="config-country">
- <title>Επιλέγοντας το Μενού Χώρας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/config-country"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αν επιλέξατε ως χώρα <guimenuitem>United States</guimenuitem>,
- θα χρησιμοποιηθεί η τυποποιημένη Αμερικανική διάταξη πληκτρολογίου.
- Αν επιλέξατε διαφορετική χώρα, θα εμφανιστεί το παρακάτω μενού.
- Χρησιμοποιήστε τα βελάκια για να επιλέξετε τη σωστή διάταξη
- πληκτρολογίου και πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="config-keymap">
- <title>Επιλογή Μενού Πληκτρολογίου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/config-keymap"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετά την επιλογή της χώρας, θα εμφανιστεί το βασικό μενού
- επιλογών του <application>sysinstall</application>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml:id="sysinstall-main3">
- <title>Επιλέγοντας Usage από το Main Menu του SysInstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/main1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <sect2 xml:id="select-doc">
- <title>Επιλέγοντας το Μενού Documentation (Τεκμηρίωσης)</title>
-
- <para>Από το Main Menu, επιλέξτε <guimenuitem>Doc</guimenuitem> με τα
- βελάκια και πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="main-doc">
- <title>Επιλέγοντας το Μενού Documentation</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/main-doc"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αυτό θα δείξει το Μενού Documentation.</para>
-
- <figure xml:id="docmenu1">
- <title>Το Μενού Documentation του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/docmenu1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Είναι σημαντικό να διαβάσετε την παρεχόμενη τεκμηρίωση.</para>
-
- <para>Για να δείτε ένα έγγραφο, επιλέξτε το με τα βελάκια και πιέστε
- <keycap>Enter</keycap>. Όταν τελειώσετε την ανάγνωση ενός εγγράφου,
- πιέζοντας <keycap>Enter</keycap> θα επιστρέψετε στο μενού
- Documentation.</para>
-
- <para>Για να επιστρέψετε στο Κυρίως Μενού Εγκατάστασης, επιλέξτε
- <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
- </sect2>
-
- <sect2 xml:id="keymap">
- <title>Επιλέγοντας το Μενού Keymap (Διάταξη Πληκτρολογίου)</title>
-
- <para>Για να αλλάξετε τη διάταξη του πληκτρολογίου, χρησιμοποιήστε τα
- βελάκια για να επιλέξετε <guimenuitem>Keymap</guimenuitem>
- από το μενού και πιέστε <keycap>Enter</keycap>. Αυτό απαιτείται μόνο
- αν χρησιμοποιείτε διάταξη πληκτρολογίου που δεν είναι στάνταρ και
- επίσης για διατάξεις εκτός της Αγγλικής ΗΠΑ.</para>
-
- <figure xml:id="sysinstall-keymap">
- <title>Κύριο Μενού Εγκατάστασης (Sysinstall Main Menu)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/main-keymap"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μπορείτε να επιλέξετε διαφορετική διάταξη πληκτρολογίου
- κάνοντας την αντίστοιχη επιλογή από το μενού χρησιμοποιώντας τα
- βελάκια, και πιέζοντας <keycap>Space</keycap>. Πιέζοντας ξανά
- <keycap>Space</keycap> θα καταργήσετε την επιλογή. Όταν τελειώσετε,
- επιλέξτε &gui.ok; με τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <para>Στην παρακάτω απεικόνιση της οθόνης φαίνεται μόνο μέρος της
- λίστας. Αν επιλέξετε &gui.cancel; πιέζοντας το <keycap>Tab</keycap>
- θα χρησιμοποιήσετε την προεπιλεγμένη διάταξη πληκτρολογίου και θα
- επιστρέψετε στο Κύριο Μενού Εγκατάστασης.</para>
-
- <figure xml:id="sysinstall-keymap-menu">
- <title>Το Μενού Keymap του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/keymap"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
-
- <sect2 xml:id="viewsetoptions">
- <title>Η Οθόνη Installation Options (Επιλογών Εγκατάστασης)</title>
-
- <para>Επιλέξτε <guimenuitem>Options</guimenuitem> και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="sysinstall-options">
- <title>Το Κύριο Μενού του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/main-options"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <figure xml:id="options">
- <title>Επιλογές του Sysinstall (Options)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/options"/>
- </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 xml:id="start-install">
- <title>Ξεκινήστε μια Τυπική Εγκατάσταση (Standard Installation)</title>
-
- <para>Η <guimenuitem>Standard</guimenuitem> εγκατάσταση είναι η επιλογή
- που συνίσταται για τους νέους χρήστες του &unix; ή του &os;.
- Χρησιμοποιήστε τα βελάκια για να επιλέξετε
- <guimenuitem>Standard</guimenuitem> από το μενού, και πιέστε
- <keycap>Enter</keycap> για να ξεκινήσετε την εγκατάσταση.</para>
-
- <figure xml:id="sysinstall-standard">
- <title>Εκκίνηση της Τυπικής Εγκατάστασης (Standard
- Installation)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/main-std"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
- </sect1>
-
- <sect1 xml:id="install-steps">
- <title>Εκχώρηση Χώρου στο Δίσκο</title>
-
- <para>Το πρώτο σας βήμα είναι να εκχωρήσετε χώρο δίσκου για το &os; και
- να δημιουργήσετε μια ετικέτα (label) στο χώρο αυτό ώστε να μπορέσει να
- τον προετοιμάσει το <application>sysinstall</application>. Για το σκοπό
- αυτό πρέπει να γνωρίζετε τον τρόπο με τον οποίο περιμένει το &os; να
- βρει τις πληροφορίες στο δίσκο.</para>
-
- <sect2 xml: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>Ghost</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 xml: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. Έχουν τα ονόματα
- <filename>ad0</filename> και <filename>ad2</filename>.</para>
-
- <figure xml:id="sysinstall-fdisk-drive1">
- <title>Επιλέξτε Δίσκο για την FDisk</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/fdisk-drive1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Ίσως να αναρωτιέστε γιατί δεν υπάρχει εδώ συσκευή με όνομα
- <filename>ad1</filename>. Τι είναι αυτό που λείπει;</para>
-
- <para>Σκεφτείτε τι θα γινόταν αν είχατε δύο IDE δίσκους, ένα ως master
- στο πρώτο IDE ελεγκτή, και ένα ως master στο δεύτερο IDE ελεγκτή. Αν
- το &os; τους αριθμούσε όπως τους έβρισκε, δηλ. ως
- <filename>ad0</filename> και <filename>ad1</filename>
- όλα θα λειτουργούσαν κανονικά.</para>
-
- <para>Αν όμως προσθέταμε μετά ένα τρίτο δίσκο, ως συσκευή slave στον
- πρώτο IDE ελεγκτή, αυτή θα γινόταν πλέον <filename>ad1</filename>,
- και η προηγούμενη <filename>ad1</filename> θα γινόταν
- <filename>ad2</filename>. Επειδή τα ονόματα των συσκευών (όπως
- <filename>ad1s1a</filename>) χρησιμοποιούνται για την εύρεση των
- συστημάτων αρχείων, μπορεί να ανακαλύπτατε ξαφνικά ότι κάποια από τα
- συστήματα αρχείων σας δεν εμφανίζονται κανονικά και πρέπει να αλλάξετε
- την ρύθμιση του &os; σας.</para>
-
- <para>Για να ξεπεραστεί το πρόβλημα αυτό, ο πυρήνας μπορεί να ρυθμιστεί
- να ονομάζει τους δίσκους IDE ανάλογα με την θέση τους, και όχι με τη
- σειρά με την οποία ανιχνεύονται. Με τον τρόπο αυτό, ο master δίσκος
- στο δεύτερο IDE ελεγκτή θα είναι <emphasis>πάντα</emphasis>,
- <filename>ad2</filename>, ακόμα και αν δεν υπάρχει συσκευή
- <filename>ad0</filename> ή <filename>ad1</filename>.</para>
-
- <para>Η ρύθμιση αυτή είναι και η προεπιλεγμένη για τον πυρήνα του &os;,
- και για το λόγο αυτό η οθόνη δείχνει <filename>ad0</filename> και
- <filename>ad2</filename>. Το μηχάνημα από το οποίο λήφθηκε η
- εικόνα είχε δίσκους 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, το οποίο σίγουρα εμφανίζεται ως
- <filename>C:</filename> στα &ms-dos; και &windows;, καθώς και μια
- εκτεταμένη κατάτμηση η οποία μπορεί να περιέχει και άλλα γράμματα
- οδηγών για το &ms-dos; ή τα &windows;.</para>
-
- <para>Το τρίτο τμήμα, δείχνει τις εντολές που είναι διαθέσιμες στην
- <application>FDisk</application>.</para>
-
- <figure xml:id="sysinstall-fdisk1">
- <title>Τυπικές Κατατμήσεις <command>fdisk</command> πριν την
- Επεξεργασία</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/fdisk-edit1"/>
- </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 xml:id="sysinstall-fdisk2">
- <title>Κατάτμηση Fdisk που Χρησιμοποιεί Ολόκληρο το Δίσκο</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/fdisk-edit2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Όταν τελειώσετε, πιέστε <keycap>Q</keycap>. Οι αλλαγές σας θα
- αποθηκευτούν στο <application>sysinstall</application>, αλλά δεν θα
- γραφτούν ακόμα στο δίσκο.</para>
- </sect2>
-
- <sect2 xml: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 xml:id="sysinstall-bootmgr">
- <title>Το μενού Boot Manager του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/boot-mgr"/>
- </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 xml:id="sysinstall-fdisk-drive2">
- <title>Έξοδος από την Επιλογή Δίσκων (Select Drive)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/fdisk-drive2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το πλήκτρο <keycap>Tab</keycap> εναλλάσσει μεταξύ του τελευταίου
- επιλεγμένου δίσκου, του &gui.ok;, και του &gui.cancel;.</para>
-
- <para>Πιέστε μια φορά το <keycap>Tab</keycap> για να μεταφερθείτε στο
- &gui.ok;, πιέστε <keycap>Enter</keycap> για να συνεχίσετε την
- εγκατάσταση.</para>
- </sect2>
-
- <sect2 xml: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>/diskn
- </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 xml:id="sysinstall-label">
- <title>Επεξεργαστής Disklabel του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-ed1"/>
- </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 xml:id="sysinstall-label2">
- <title>Ο Επεξεργαστής Κατατμήσεων Disklabel του Sysinstall με τις
- Αυτόματες Προεπιλογές</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-auto"/>
- </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 xml:id="sysinstall-label-add">
- <title>Ελεύθερος Χώρος για την Κατάτμηση Root</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-root1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το προεπιλεγμένο μέγεθος που φαίνεται θα δημιουργήσει μια
- κατάτμηση που καταλαμβάνει όλο τον υπόλοιπο ελεύθερο χώρο του slice.
- Αν χρησιμοποιείτε τα μεγέθη των κατατμήσεων που περιγράψαμε στο
- προηγούμενο παράδειγμα, σβήστε τον αριθμό που φαίνεται με το
- <keycap>Backspace</keycap>, και πληκτρολογήστε
- <userinput>512M</userinput>, όπως φαίνεται στο
- <xref linkend="sysinstall-label-add2"/>. Κατόπιν πιέστε
- &gui.ok;.</para>
-
- <figure xml:id="sysinstall-label-add2">
- <title>Επεξεργασία Μεγέθους της Κατάτμησης Root</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-root2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Έχοντας επιλέξει το μέγεθος της κατάτμησης, θα ερωτηθείτε κατόπιν
- για το αν η κατάτμηση θα περιέχει κάποιο σύστημα αρχείων, ή θα γίνει
- χώρος swap. Ο διάλογος αυτός φαίνεται στο
- <xref linkend="sysinstall-label-type"/>. Η πρώτη αυτή κατάτμηση θα
- περιέχει σύστημα αρχείων, για αυτό ελέγξτε ότι είναι επιλεγμένο το
- <guimenuitem>FS</guimenuitem> και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="sysinstall-label-type">
- <title>Επιλέξτε τον Τύπο της Κατάτμησης Root</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-fs"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Τέλος, επειδή δημιουργείτε σύστημα αρχείων, πρέπει να δηλώσετε στο
- <application>Disklabel</application> που θέλετε να γίνει η προσάρτηση
- του. Ο αντίστοιχος διάλογος φαίνεται στο
- <xref linkend="sysinstall-label-mount"/>. Το σημείο προσάρτησης της
- κατάτμησης root είναι το <filename>/</filename>, για αυτό γράψτε
- <userinput>/</userinput>, και πιέστε <keycap>Enter</keycap>.</para>
-
- <figure xml:id="sysinstall-label-mount">
- <title>Επιλέξτε το Σημείο Προσάρτησης του Root</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-root3"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Η οθόνη κατόπιν θα ανανεωθεί για να σας δείξει την κατάτμηση που
- μόλις δημιουργήσατε. Θα πρέπει να επαναλάβετε αυτή την διαδικασία για
- τις άλλες κατατμήσεις. Όταν δημιουργήσετε την κατάτμηση swap, δεν θα
- σας ζητηθεί να επιλέξετε σημείο προσάρτησης, καθώς οι κατατμήσεις
- swap δεν προσαρτώνται ποτέ. Όταν δημιουργήσετε την τελευταία
- κατάτμηση, την <filename>/usr</filename>, μπορείτε να αφήσετε το
- προτεινόμενο μέγεθος, για να χρησιμοποιήσετε όλο τον υπόλοιπο χώρο του
- slice.</para>
-
- <para>Η τελευταία οθόνη του &os; Επεξεργαστή DiskLabel, θα δείχνει όμοια
- με την <xref linkend="sysinstall-label4"/>, αν και οι δικές σας τιμές
- θα είναι διαφορετικές. Πιέστε <keycap>Q</keycap> για τέλος.</para>
-
- <figure xml:id="sysinstall-label4">
- <title>Ο Επεξεργαστής Disklabel του Sysinstall</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/disklabel-ed2"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
- </sect1>
-
- <sect1 xml:id="install-choosing">
- <title>Επιλέγοντας τι θα Εγκαταστήσετε</title>
-
- <sect2 xml: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 xml:id="distribution-set1">
- <title>Επιλέξτε Distributions (Σετ Εγκατάστασης)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/dist-set"/>
- </imageobject>
- </mediaobject>
- </figure>
- </sect2>
-
- <sect2 xml: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 xml:id="distribution-set2">
- <title>Επιβεβαίωση Distribution Set</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/dist-set2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αν είστε ικανοποιημένοι από τις επιλογές σας, επιλέξτε
- <guimenuitem>Exit</guimenuitem> με τα βελάκια, επιβεβαιώστε ότι είναι
- φωτισμένη η επιλογή &gui.ok; και πιέστε <keycap>Enter</keycap> για να
- συνεχίσετε.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml:id="choose-media">
- <title>Επιλέξτε Μέσο Εγκατάστασης (Installation Media)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/media"/>
- </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>
- τότε τον πραγματικό διακομιστή. Για παράδειγμα, υποθέστε ότι θέλετε
- να κάνετε εγκατάσταση από το
- <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>, χρησιμοποιώντας FTP
- μεσολαβητή τον <systemitem class="fqdomainname">foo.example.com</systemitem>, ο οποίος
- χρησιμοποιεί την πόρτα 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> από
- <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> γίνεται ορατό μέσω του
- <systemitem class="fqdomainname">foo.example.com</systemitem>, μπορείτε να
- εγκαταστήσετε από <emphasis>εκείνο</emphasis> το μηχάνημα (το οποίο θα
- φέρει τα αρχεία από το <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>
- όπως απαιτούνται από την εγκατάσταση σας.</para>
- </note>
- </sect1>
-
- <sect1 xml: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 xml:id="install-post">
- <title>Μετά την Εγκατάσταση</title>
-
- <para>Μετά από μια επιτυχημένη εγκατάσταση, ακολουθεί η ρύθμιση διάφορων
- προαιρετικών επιλογών. Οι ρυθμίσεις μπορούν να γίνουν αν εισέλθετε
- ξανά στο αντίστοιχο μενού (configuration options) πριν επανεκκινήσετε
- το νέο &os; σύστημα σας ή μετά την εγκατάσταση, χρησιμοποιώντας το
- <command>sysinstall</command> και επιλέγοντας
- <guimenuitem>Configure</guimenuitem>.</para>
-
- <sect2 xml: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 xml:id="ed-config1">
- <title>Επιλέγοντας μια Συσκευή Ethernet</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/ed0-conf"/>
- </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 xml:id="ed-config2">
- <title>Ρύθμιση Παραμέτρων Συσκευής <replaceable>ed0</replaceable></title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/ed0-conf2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Χρησιμοποιήστε το <keycap>Tab</keycap> για να επιλέξετε ανάμεσα
- στα διάφορα πεδία και να συμπληρώσετε τις κατάλληλες
- πληροφορίες.</para>
-
- <variablelist>
- <varlistentry>
- <term>Host (Όνομα μηχανήματος)</term>
-
- <listitem>
- <para>Το πλήρες όνομα του μηχανήματος, π.χ.
- <systemitem class="fqdomainname">k6-2.example.com</systemitem> σε αυτή την
- περίπτωση.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Domain (Τομέας)</term>
-
- <listitem>
- <para>Το όνομα του τομέα στον οποίο βρίσκεται το μηχάνημα, όπως
- <systemitem class="fqdomainname">example.com</systemitem> σε αυτή την
- περίπτωση.</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
- (<systemitem class="ipaddress">208.163.10.2</systemitem>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>IPv4 address (Διεύθυνση)</term>
-
- <listitem>
- <para>Η IP διεύθυνση που θα χρησιμοποιηθεί σε αυτό το
- interface είναι
- <systemitem class="ipaddress">192.168.0.1</systemitem></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Netmask (Μάσκα Υποδικτύου)</term>
-
- <listitem>
- <para>Το μπλοκ διευθύνσεων που χρησιμοποιούνται σε αυτό το δίκτυο
- είναι
- <systemitem class="ipaddress">192.168.0.0</systemitem> -
- <systemitem class="ipaddress">192.168.0.255</systemitem>
- με μάσκα υποδικτύου (netmask)
- <systemitem class="netmask">255.255.255.0</systemitem>.</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 xml: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 xml: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 xml:id="inetd-edit">
- <title>Επεξεργασία του <filename>inetd.conf</filename></title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/edit-inetd-conf"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετά την προσθήκη των επιθυμητών υπηρεσιών, και με την πίεση του
- <keycap>Esc</keycap> θα εμφανιστεί ένα μενού το οποίο σας επιτρέπει να
- βγείτε από το πρόγραμμα, αποθηκεύοντας και τις αλλαγές σας.</para>
- </sect2>
-
- <sect2 xml: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 xml: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 xml:id="deny-anon">
- <title>Άρνηση Ανώνυμου FTP</title>
-
- <para>Επιλέγοντας το προεπιλεγμένο &gui.no; και πιέζοντας
- <keycap>Enter</keycap> θα επιτρέπεται μόνος στους χρήστες που έχουν
- λογαριασμούς με κωδικούς να έχουν FTP πρόσβαση στο μηχάνημα.</para>
- </sect3>
-
- <sect3 xml: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 xml:id="anon-ftp2">
- <title>Προεπιλεγμένες Ρυθμίσεις Ανώνυμου FTP</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/ftp-anon1"/>
- </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 xml:id="anon-ftp4">
- <title>Επεξεργασία του Μηνύματος Καλοσωρίσματος (Welcome Message)
- του FTP</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/ftp-anon2"/>
- </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 xml:id="nfsconf">
- <title>Ρύθμιση Συστήματος Αρχείων Δικτύου (Network File System)</title>
-
- <para>Το Σύστημα Αρχείων Δικτύου (NFS) επιτρέπει το διαμοιρασμό αρχείων
- σε ένα δίκτυο. Ένα μηχάνημα μπορεί να ρυθμιστεί ως εξυπηρετητής,
- πελάτης ή και τα δύο. Ανατρέξτε στο
- <xref linkend="network-nfs"/> για περισσότερες πληροφορίες.</para>
-
- <sect3 xml: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 xml:id="nfs-server-edit">
- <title>Επεξεργασία Αρχείου <filename>exports</filename></title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/nfs-server-edit"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Χρησιμοποιήστε τις οδηγίες για να προσθέσετε τα συστήματα
- αρχείων που θέλετε να διαμοιράσετε, τώρα ή αργότερα χρησιμοποιώντας
- ένα επεξεργαστή κειμένου της επιλογής σας. Σημειώστε το όνομα και
- την τοποθεσία του αρχείου όπως φαίνονται στο κάτω μέρος
- της οθόνης.</para>
-
- <para>Πιέζοντας <keycap>Esc</keycap> θα εμφανιστεί ένα αναδυόμενο
- μενού με προεπιλεγμένη την επιλογή
- <guimenuitem>a) leave editor</guimenuitem>. Πιέστε
- <keycap>Enter</keycap> για έξοδο και συνέχεια.</para>
- </sect3>
-
- <sect3 xml: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 xml: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 xml:id="saver-options">
- <title>Επιλογές Ρύθμισης Κονσόλας Συστήματος</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/console-saver1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μια συνηθισμένη επιλογή είναι η προστασία οθόνης (screen saver).
- Χρησιμοποιήστε τα βελάκια για να επιλέξετε
- <guimenuitem>Saver</guimenuitem> και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="saver-select">
- <title>Επιλογές Προστασίας Οθόνης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/console-saver2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε την επιθυμητή προστασία οθόνης με τα βελάκια, και πιέστε
- <keycap>Enter</keycap>. Θα ξαναδείτε το μενού Ρύθμισης Κονσόλας
- Συστήματος.</para>
-
- <para>Το προεπιλεγμένο χρονικό διάστημα είναι 300 δευτερόλεπτα. Για να
- αλλάξετε το διάστημα, επιλέξτε ξανά <guimenuitem>Saver</guimenuitem>
- και από το μενού Screen Saver Options επιλέξτε
- <guimenuitem>Timeout</guimenuitem> με τα βελάκια, και πιέστε
- <keycap>Enter</keycap>. Θα εμφανιστεί ένα αναδυόμενο μενού:</para>
-
- <figure xml:id="saver-timeout">
- <title>Χρονικό Διάστημα Προστασίας Οθόνης</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/console-saver3"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Αλλάξτε την τιμή, επιλέξτε &gui.ok;
- και πιέστε <keycap>Enter</keycap> για να επιστρέψετε στο μενού
- Ρύθμισης Κονσόλας Συστήματος.</para>
-
- <figure xml:id="saver-exit">
- <title>Έξοδος από τις Ρυθμίσεις Κονσόλας Συστήματος</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/console-saver4"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέγοντας <guimenuitem>Exit</guimenuitem> και πιέζοντας
- <keycap>Enter</keycap> θα συνεχίσετε με τις υπόλοιπες ρυθμίσεις που
- πρέπει να γίνουν μετά την εγκατάσταση.</para>
- </sect2>
-
- <sect2 xml: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 xml:id="set-timezone-region">
- <title>Επιλογή της Περιοχής σας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/timezone1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε την κατάλληλη περιοχή (region) με τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="set-timezone-country">
- <title>Επιλογή της Χώρας σας</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/timezone2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε την κατάλληλη χώρα χρησιμοποιώντας τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="set-timezone-locality">
- <title>Επιλογή Ζώνης Ώρας (Time Zone)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/timezone3"/>
- </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 xml: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 xml: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 xml:id="mouse-protocol">
- <title>Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol Type)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Χρησιμοποιήστε τα βελάκια για να επιλέξετε
- <guimenuitem>Type</guimenuitem> και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="set-mouse-protocol">
- <title>Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse2"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το ποντίκι που χρησιμοποιείται σε αυτό το παράδειγμα, είναι τύπου
- PS/2, και έτσι είναι σωστή η προεπιλεγμένη ρύθμιση
- <guimenuitem>Auto</guimenuitem>. Για να αλλάξετε πρωτόκολλο,
- χρησιμοποιήστε τα βελάκια για να κάνετε κάποια άλλη επιλογή.
- Βεβαιωθείτε ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε
- <keycap>Enter</keycap> για έξοδο από αυτό το μενού.</para>
-
- <figure xml:id="config-mouse-port">
- <title>Ρύθμιση Πόρτας Ποντικιού (Mouse Port)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse3"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Χρησιμοποιήστε τα βελάκια για να επιλέξετε
- <guimenuitem>Port</guimenuitem> και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="set-mouse-port">
- <title>Ρύθμιση Πόρτας Ποντικιού (Mouse Port)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse4"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Το σύστημα αυτό είχε ποντίκι PS/2 και έτσι ήταν κατάλληλη η
- προεπιλεγμένη ρύθμιση <guimenuitem>PS/2</guimenuitem>. Για να
- αλλάξετε την πόρτα, χρησιμοποιήστε τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="test-daemon">
- <title>Ενεργοποίηση του Δαίμονα Ποντικιού (Mouse Daemon)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse5"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Τέλος, χρησιμοποιήστε τα βελάκια για να επιλέξετε
- <guimenuitem>Enable</guimenuitem>, και πιέστε
- <keycap>Enter</keycap> για να ενεργοποιήσετε και να δοκιμάσετε τον
- δαίμονα του ποντικιού (mouse daemon).</para>
-
-
- <figure xml:id="test-mouse-daemon">
- <title>Έλεγχος του Δαίμονα Ποντικιού</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mouse6"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μετακινήστε το ποντίκι στην οθόνη και βεβαιωθείτε ότι ο δρομέας
- αντιδρά σωστά. Αν είναι εντάξει, επιλέξτε &gui.yes; και πιέστε
- <keycap>Enter</keycap>. Αν όχι, το ποντίκι δεν έχει ρυθμιστεί σωστά
- &mdash; επιλέξτε &gui.no; και ξαναδοκιμάστε χρησιμοποιώντας
- διαφορετικές ρυθμίσεις.</para>
-
- <para>Επιλέξτε <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
- <keycap>Enter</keycap> για να επιστρέψετε, ώστε να συνεχίσετε με τις
- υπόλοιπες ρυθμίσεις μετά την εγκατάσταση.</para>
- </sect2>
-
- <sect2 xml: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 xml:id="package-category">
- <title>Επιλογή Κατηγορίας Πακέτου</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/pkg-cat"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μπορείτε κάθε δεδομένη στιγμή να εγκαταστήσετε μόνο τα πακέτα που
- είναι διαθέσιμα στο τρέχον μέσο εγκατάστασης.</para>
-
- <para>Με την επιλογή <guimenuitem>All</guimenuitem> θα δείτε όλα τα
- διαθέσιμα πακέτα, ή μπορείτε να επιλέξετε συγκεκριμένη κατηγορία.
- Φωτίστε την επιλογή σας με τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <para>Θα εμφανιστεί ένα μενού το οποίο δείχνει όλα διαθέσιμα πακέτα για
- την επιλογή που κάνατε:</para>
-
- <figure xml:id="package-select">
- <title>Επιλογή Πακέτων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/pkg-sel"/>
- </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 xml:id="package-install">
- <title>Εγκατάσταση Πακέτων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/pkg-install"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Χρησιμοποιήστε το <keycap>Tab</keycap> και τα βελάκια για να
- επιλέξετε <guibutton>[&nbsp;Install&nbsp;]</guibutton> και πιέστε
- <keycap>Enter</keycap>. Θα χρειαστεί να επιβεβαιώσετε ότι θέλετε να
- εγκαταστήσετε τα πακέτα:</para>
-
- <figure xml:id="package-install-confirm">
- <title>Επιβεβαίωση Εγκατάστασης Πακέτων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/pkg-confirm"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέγοντας &gui.ok; και πιέζοντας <keycap>Enter</keycap> θα
- ξεκινήσει η εγκατάσταση πακέτων. Θα βλέπετε μηνύματα της εγκατάστασης
- μέχρι την ολοκλήρωση της. Σημειώστε τυχόν μηνύματα λάθους που
- εμφανίζονται.</para>
-
- <para>Η τελική ρύθμιση συνεχίζεται μετά την εγκατάσταση των πακέτων. Αν
- καταλήξετε να μην εγκαταστήσετε κανένα πακέτο, και επιθυμείτε να
- επιστρέψετε στην τελική ρύθμιση, επιλέξτε
- <guibutton>Install</guibutton> ούτως ή άλλως.</para>
- </sect2>
-
- <sect2 xml:id="addusers">
- <title>Προσθήκη Χρηστών / Ομάδων (Users/Groups)</title>
-
- <para>Θα πρέπει να προσθέσετε τουλάχιστον ένα χρήστη κατά τη διάρκεια
- της εγκατάστασης, ώστε να μπορείτε να χρησιμοποιήσετε το σύστημα χωρίς
- να εισέρχεστε ως <systemitem class="username">root</systemitem>. Η root κατάτμηση είναι
- γενικά μικρή, και εκτελώντας εφαρμογές ως <systemitem class="username">root</systemitem>
- μπορεί γρήγορα να γεμίσει. Παρακάτω φαίνεται και ένας πιο σοβαρός
- κίνδυνος:</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 xml:id="add-user2">
- <title>Επιλογή Χρήστη</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/adduser1"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Επιλέξτε <guimenuitem>User</guimenuitem> με τα βελάκια και πιέστε
- <keycap>Enter</keycap>.</para>
-
- <figure xml:id="add-user3">
- <title>Προσθήκη Πληροφοριών Χρήστη</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/adduser2"/>
- </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>Ο χρήστης προστέθηκε επίσης στην ομάδα
- <systemitem class="groupname">wheel</systemitem> για να έχει τη δυνατότητα να γίνει
- υπερχρήστης (superuser) με δικαιώματα
- <systemitem class="username">root</systemitem>.</para>
-
- <para>Όταν είστε ικανοποιημένος από τις επιλογές σας, πιέστε &gui.ok;
- και θα εμφανιστεί ξανά το μενού User and Group Management:</para>
-
- <figure xml:id="add-user4">
- <title>Έξοδος από την Διαχείριση Χρηστών και Ομάδων</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/adduser3"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Μπορείτε επίσης τη δεδομένη στιγμή να προσθέσετε ομάδες, αν
- υπάρχει συγκεκριμένη ανάγκη. Διαφορετικά, μπορείτε να επανέλθετε στη
- ρύθμιση αυτή μετά την εγκατάσταση, μέσω του
- <command>sysinstall</command>.</para>
-
- <para>Όταν τελειώσετε με την προσθήκη χρηστών, επιλέξτε
- <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
- <keycap>Enter</keycap> για να συνεχίσετε με την εγκατάσταση.</para>
- </sect2>
-
- <sect2 xml:id="rootpass">
- <title>Ορισμός του Κωδικού για το Χρήστη
- <systemitem class="username">root</systemitem></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> για να ορίσετε τον κωδικό για το
- χρήστη <systemitem class="username">root</systemitem>.</para>
-
- <para>Θα πρέπει να πληκτρολογήσετε δύο φορές τον κωδικό σωστά. Δεν
- χρειάζεται να πούμε ότι πρέπει να έχετε τρόπο να βρείτε τον κωδικό
- αν τον ξεχάσετε. Παρατηρήστε ότι ο κωδικός δεν εμφανίζεται καθώς τον
- πληκτρολογείτε, ούτε και εμφανίζονται αστεράκια στη θέση του.</para>
-
- <screen>Changing local password for root.
-New password :
-Retype new password :</screen>
-
- <para>Η εγκατάσταση θα συνεχιστεί μετά την επιτυχημένη εισαγωγή του
- κωδικού.</para>
- </sect2>
-
- <sect2 xml: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 xml:id="final-main">
- <title>Έξοδος από την Εγκατάσταση</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mainexit"/>
- </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 xml:id="network-services">
- <info><title>Ρύθμιση Πρόσθετων Υπηρεσιών Δικτύου</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Η ρύθμιση υπηρεσιών δικτύου μπορεί να είναι μια δύσκολη διαδικασία
- για νέους χρήστες χωρίς εμπειρία στον αντίστοιχο τομέα. Η δικτύωση,
- περιλαμβανομένου και του Internet, είναι κρίσιμη σε όλα τα μοντέρνα
- λειτουργικά συστήματα, περιλαμβανομένου και του &os;. Για το λόγο
- αυτό είναι χρήσιμο να έχετε κάποια κατανόηση των εκτεταμένων
- ικανοτήτων δικτύωσης του &os;. Κάνοντας το αυτό κατά τη διάρκεια της
- εγκατάστασης επιβεβαιώνεται η δυνατότητα των χρηστών να κατανοήσουν
- τις διάφορες υπηρεσίες που τους παρέχονται.</para>
-
- <para>Οι δικτυακές υπηρεσίες είναι προγράμματα που δέχονται είσοδο από
- οποιοδήποτε σημείο στο δίκτυο. Καταβάλλεται κάθε προσπάθεια για να
- είναι σίγουρο ότι τα προγράμματα αυτά δεν θα κάνουν οτιδήποτε
- <quote>επιζήμιο</quote>. Δυστυχώς οι προγραμματιστές δεν είναι
- τέλειοι και κατά καιρούς έχουν εμφανιστεί περιπτώσεις που σφάλματα σε
- δικτυακές υπηρεσίες έχουν γίνει αντικείμενα εκμετάλλευσης από
- εισβολείς για την εκτέλεση κακόβουλων πράξεων. Είναι σημαντικό να μην
- ενεργοποιήσετε καμιά δικτυακή υπηρεσία μέχρι να ανακαλύψετε ότι την
- χρειάζεστε. Μπορείτε πάντα να την ενεργοποιήσετε αργότερα,
- εκτελώντας ξανά την εφαρμογή <application>sysinstall</application> ή
- χρησιμοποιώντας τις δυνατότητες που παρέχονται από το αρχείο
- <filename>/etc/rc.conf</filename>.</para>
-
- <para>Με την επιλογή <guimenu>Networking</guimenu> θα δείτε ένα μενού
- παρόμοιο με το παρακάτω:</para>
-
- <figure xml:id="network-configuration">
- <title>Ρύθμιση Δικτύου Upper-level (Ανωτέρου Επιπέδου)</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/net-config-menu1"/>
- </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>/host</filename> χρησιμοποιείται για την
- προσάρτηση ενός διαμοιρασμένου συστήματος αρχείων από ένα
- απομακρυσμένο κόμβο, ενώ ο κατάλογος
- <filename>/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 xml:id="mta-selection">
- <title>Επιλογή Προεπιλεγμένου MTA</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/mta-main"/>
- </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 xml:id="Ntpdate-config">
- <title>Ρύθμιση Ntpdate</title>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/ntp-config"/>
- </imageobject>
- </mediaobject>
- </figure>
-
- <para>Από το μενού αυτό, επιλέξτε τον διακομιστή που είναι πλησιέστερος
- στην τοποθεσία σας. Επιλέγοντας τον πλησιέστερο, ο συγχρονισμός της
- ώρας θα είναι πιο ακριβής, καθώς ένας απομακρυσμένος διακομιστής
- θα έχει ενδεχομένως μεγαλύτερη καθυστέρηση στη σύνδεση.</para>
-
- <para>Η επόμενη επιλογή είναι το <acronym>PCNFSD</acronym>. Με αυτήν θα
- εγκατασταθεί το πακέτο <package>net/pcnfsd</package>
- από τη συλλογή Ports. Πρόκειται για ένα χρήσιμο βοηθητικό πρόγραμμα
- το οποίο παρέχει υπηρεσίες πιστοποίησης (authentication) για το
- <acronym>NFS</acronym> για συστήματα που δεν έχουν δυνατότητα να
- παρέχουν τις δικές τους, όπως το λειτουργικό σύστημα &ms-dos; της
- Microsoft.</para>
-
- <para>Τώρα θα πρέπει να μετακινηθείτε προς τα κάτω για να δείτε τις
- άλλες επιλογές:</para>
-
- <figure xml:id="Network-configuration-cont">
- <title>Ρύθμιση Δικτύου Lower-level (Κατώτερου Επιπέδου)</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="install/net-config-menu2"/>
- </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 xml:id="freebsdboot">
- <title>Εκκίνηση του &os;</title>
-
- <sect3 xml: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 με τη χρήση του ονόματος χρήστη και κωδικού που
- δημιουργήσατε κατά την εγκατάσταση (στο παράδειγμα μας,
- <systemitem class="username">rpratt</systemitem>). Αποφεύγετε να εισέρχεστε ως
- <systemitem class="username">root</systemitem> αν δεν είναι απαραίτητο.</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&gt; 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 xml:id="shutdown">
- <title>Τερματισμός του &os;</title>
-
- <para>Είναι πολύ σημαντικό να τερματίζετε σωστά το λειτουργικό σύστημα.
- Μην σβήνετε απλώς τον υπολογιστή από το διακόπτη ρεύματος. Πρώτα από
- όλα, γίνετε υπερχρήστης (superuser) χρησιμοποιώντας την εντολή
- <command>su</command> στη γραμμή εντολών και δίνοντας τον κωδικό του
- <systemitem class="username">root</systemitem>. Αυτό μπορεί να γίνει μόνο αν ο χρήστης
- ανήκει στην ομάδα <systemitem class="groupname">wheel</systemitem>. Διαφορετικά, κάντε
- κανονικά login σαν <systemitem class="username">root</systemitem> και χρησιμοποιήστε την
- εντολή <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 xml: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>Ελέγξτε το έγγραφο <link xlink:href="http://www.FreeBSD.org/releases/index.html"> Σημειώσεων Υλικού
- (Hardware Notes)</link> για την έκδοση του &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; τους βλέπει ως
- <filename>ad0</filename> και
- <filename>ad2</filename>.</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>
- <question>
- <para>Όταν χρησιμοποιείται το
- <application>sysinstall</application> σε ένα τερματικό X11, η
- κίτρινη γραμματοσειρά πάνω στο ανοιχτό γκρι φόντο είναι
- δυσανάγνωστη. Υπάρχει τρόπος να βελτιωθεί η αντίθεση
- <indexterm><primary>color</primary><secondary>contrast</secondary>
- </indexterm> σε αυτή την εφαρμογή;</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 xml:id="install-advanced">
- <info><title>Οδηγός Εγκατάστασης για Προχωρημένους</title>
- <authorgroup>
- <author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- <!-- May 2001 -->
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Ανανεώθηκε από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <para>Το τμήμα αυτό περιγράφει πως να εγκαταστήσετε το &os; σε ιδιαίτερα
- μηχανήματα ή / και με μη συνηθισμένους τρόπους.</para>
-
- <sect2 xml: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/da0a /mnt</userinput></screen>
-
- <note>
- <para>Προσαρμόστε κατάλληλα το όνομα της συσκευής και το σημείο
- προσάρτησης, ανάλογα με το σύστημα σας.</para>
- </note>
-
- <para>Τώρα που έχετε προσαρτήσει τη μνήμη USB, θα πρέπει να τη
- ρυθμίσετε ώστε να εκκινεί στη σειριακή κονσόλα. Θα πρέπει να
- προσθέσετε μια γραμμή στο αρχείο <filename>loader.conf</filename>
- που περιέχεται στο σύστημα αρχείων της USB μνήμης, ώστε να
- ορίσετε τη σειριακή κονσόλα ως κονσόλα συστήματος:</para>
-
- <screen>&prompt.root; <userinput>echo 'console="comconsole"' &gt;&gt; /mnt/boot/loader.conf</userinput></screen>
-
- <para>Τώρα που έχετε ρυθμίσει σωστά τη μνήμη USB, πρέπει να την
- αποπροσαρτήσετε, χρησιμοποιώντας την εντολή
- &man.umount.8;:</para>
-
- <screen>&prompt.root; <userinput>umount /mnt</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;-&rel.current;-RELEASE-i386-disc1.iso</filename>
- χρησιμοποιήστε την εντολή &man.tar.1; για να κάνετε εξαγωγή των
- αρχείων που περιέχει:</para>
-
- <screen>&prompt.root; <userinput>mkdir /path/to/headless-iso</userinput>
-&prompt.root; <userinput>tar -C /path/to/headless-iso -pxvf &os;-&rel.current;-RELEASE-i386-disc1.iso</userinput></screen>
-
- <para>Θα πρέπει τώρα να αλλάξουμε το μέσο εγκατάστασης ώστε να
- ξεκινάει σε σειριακή κονσόλα. Θα πρέπει να προσθέσετε μια
- γραμμή στο αρχείο <filename>loader.conf</filename> που
- ανακτήσατε από το αρχείο ISO, ώστε να ενεργοποιήσετε την
- σειριακή κονσόλα ως κονσόλα συστήματος:</para>
-
- <screen>&prompt.root; <userinput>echo 'console="comconsole"' &gt;&gt; /path/to/headless-iso/boot/loader.conf</userinput></screen>
-
- <para>Μπορούμε έπειτα να δημιουργήσουμε ένα νέο αρχείο ISO που
- να περιλαμβάνει τις τροποποιήσεις μας. Για το σκοπό αυτό θα
- χρησιμοποιήσουμε το εργαλείο &man.mkisofs.8; το οποίο
- περιλαμβάνεται στο port <package>sysutils/cdrtools</package>:</para>
-
- <screen>&prompt.root; <userinput>mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "Headless_install" \
- -o Headless-&os;-&rel.current;-RELEASE-i386-disc1.iso /path/to/headless-iso</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 xml: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 xml: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-arch/version</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;-version-RELEASE-arch-bootonly.iso</filename></entry>
-
- <entry>Αυτό το αρχείο ISO σας επιτρέπει να εκκινήσετε την
- εγκατάσταση μέσω CDROM, αλλά δεν περιέχει τη δυνατότητα
- να εγκαταστήσετε το &os; μόνο μέσω του CD. Θα πρέπει
- να κάνετε εγκατάσταση μέσω δικτύου (π.χ. μέσω ενός
- εξυπηρετητή FTP) μετά την εκκίνηση από το CD.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-dvd1.iso.gz</filename></entry>
-
- <entry>Αυτό το αρχείο ISO, μεγέθους DVD, περιέχει όλα
- τα απαιτούμενα αρχεία για την εγκατάσταση ενός βασικού
- συστήματος &os;, καθώς και μια συλλογή από έτοιμα
- πακέτα και τεκμηρίωση. Υποστηρίζει επίσης εκκίνηση
- σε κατάσταση <quote>livefs</quote> η οποία είναι χρήσιμη
- σε περίπτωση που θέλετε να διορθώσετε προβλήματα κάποιας
- υπάρχουσας εγκατάστασης.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-memstick.img</filename></entry>
-
- <entry>Μπορείτε να γράψετε αυτή την εικόνα σε μια USB μνήμη
- flash και να τη χρησιμοποιήσετε για να εγκαταστήσετε
- &os; σε μηχανήματα που υποστηρίζουν εκκίνηση από οδηγούς
- USB. Υποστηρίζεται επίσης εκκίνηση σε κατάσταση
- <quote>livefs</quote>. Περιέχει τα πακέτα της
- τεκμηρίωσης, αλλά δεν περιέχει άλλα πακέτα προς
- εγκατάσταση. Το αρχείο αυτό δεν διατίθεται για
- &os;&nbsp;7.<replaceable>X</replaceable>.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-disc1.iso</filename></entry>
-
- <entry>Το ISO αυτό περιέχει το βασικό σύστημα του &os; και
- τα πακέτα της τεκμηρίωσης. Δεν περιέχει άλλα πακέτα
- προς εγκατάσταση.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-disc2.iso</filename></entry>
-
- <entry>Αυτό το ISO περιέχει όσο πακέτα εφαρμογών μπορούν
- να χωρέσουν στο διαθέσιμο χώρο του. Δεν διατίθεται για
- &os;&nbsp;8.<replaceable>X</replaceable>.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-disc3.iso</filename></entry>
-
- <entry>Ακόμα ένα ISO το οποίο περιέχει όσα πακέτα μπορούν
- να χωρέσουν στο διαθέσιμο χώρο του. Δεν διατίθεται για
- &os;&nbsp;8.0 και μεταγενέστερες εκδόσεις.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-docs.iso</filename></entry>
-
- <entry>H τεκμηρίωση του &os;. Αυτό το ISO δεν διατίθεται
- για το &os;&nbsp;8.<replaceable>version</replaceable>.</entry>
- </row>
-
- <row>
- <entry><filename>&os;-version-RELEASE-arch-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;, δείτε το <link xlink:href="&url.articles.releng;">Release Engineering Article</link>.</para></note>
- </sect2>
-
- <sect2 xml: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://your machine</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 για να διαμορφώσετε τις δισκέτες
- (δεξί κλικ στον οδηγό <filename>A:</filename> και επιλέξτε
- <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 xml: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>υποθέτοντας ότι ο διαθέσιμος ελεύθερος χώρος σας βρίσκεται στο
- <filename>C:</filename> και η μονάδα σας CDROM είναι στο
- <filename>E:</filename>.</para>
-
- <para>Αν δεν έχετε οδηγό CDROM, μπορείτε να κατεβάσετε την διανομή
- από την τοποθεσία <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">ftp.FreeBSD.org</link>.
- Κάθε distribution set είναι στο δικό του κατάλογο. Για παράδειγμα
- το σετ <emphasis>base</emphasis> μπορεί να βρεθεί στον κατάλογο
- <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/base/">&rel.current;/base/</link>.</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> και <link xlink:href="&url.books.faq;/ppp.html">FAQ</link> για περισσότερες
- πληροφορίες. Αν έχετε προβλήματα, μπορείτε να κατευθύνετε την
- καταγραφή (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>, τότε ο
- <systemitem>ziggy</systemitem> θα πρέπει να επιτρέπει την απευθείας
- προσάρτηση του <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>
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot
deleted file mode 100644
index d247d02521..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot
+++ /dev/null
@@ -1,12 +0,0 @@
-// $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
deleted file mode 100644
index 53e442fb09..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/example-dir2.dot
+++ /dev/null
@@ -1,13 +0,0 @@
-// $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
deleted file mode 100644
index abe91a6bc8..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/example-dir3.dot
+++ /dev/null
@@ -1,13 +0,0 @@
-// $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
deleted file mode 100644
index 1167f13ef5..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/example-dir4.dot
+++ /dev/null
@@ -1,14 +0,0 @@
-// $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
deleted file mode 100644
index b316266895..0000000000
--- a/el_GR.ISO8859-7/books/handbook/install/example-dir5.dot
+++ /dev/null
@@ -1,14 +0,0 @@
-// $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.xml b/el_GR.ISO8859-7/books/handbook/introduction/chapter.xml
deleted file mode 100644
index 00f199d7b8..0000000000
--- a/el_GR.ISO8859-7/books/handbook/introduction/chapter.xml
+++ /dev/null
@@ -1,1284 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εισαγωγή
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/introduction/chapter.xml
- %SRCID% 47099
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="introduction">
- <info>
- <title>Εισαγωγή</title>
- <authorgroup>
- <author>
- <personname>
- <firstname>Jim</firstname>
- <surname>Mock</surname>
- </personname>
- <contrib>Ανασχηματισμένο, αναδιοργανωμένο, και μερικώς ξαναγραμμένο
- από τον </contrib></author>
- </authorgroup>
- </info>
-
- <sect1 xml: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 xml: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, χρηματοδότηση), διαβάστε το άρθρο <link
- xlink:href="&url.articles.contributing;/index.html">Συνεισφέροντας
- στην Ανάπτυξη του &os;</link>.</para>
-
- <sect2 xml:id="os-overview">
- <title>Τι μπορεί να κάνει το &os;;</title>
-
- <para>Το &os; έχει πολλά αξιόλογα χαρακτηριστικά. Μερικά από αυτά
- είναι:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Preemptive πολυεπεξεργασία</emphasis>
- <indexterm><primary>preemptive πολυεπεξεργασία</primary></indexterm>
- <indexterm><primary>preemptive multitasking</primary></indexterm>
- (preemptive multitasking) με δυναμικό έλεγχο προτεραιότητας για να
- εξασφαλιστεί ομαλός και δίκαιος διαμοιρασμός των πόρων του Η/Υ
- μεταξύ εφαρμογών και χρηστών, ακόμη και στις πιο αντίξοες
- συνθήκες και βαρύ φορτίο.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Πολυχρηστικές δυνατότητες</emphasis>
- <indexterm><primary>πολυχρηστικές δυνατότητες</primary></indexterm>
- <indexterm><primary>multi-user facilities</primary></indexterm>
- (multi-user facilities) οι οποίες επιτρέπουν σε πολλά άτομα
- ταυτόχρονα να χρησιμοποιήσουν ένα σύστημα &os; για διαφορετικά
- πράγματα. Αυτό σημαίνει, για παράδειγμα, ότι τα περιφερειακά
- του συστήματος, όπως εκτυπωτές και οδηγοί ταινιών είναι σωστά
- μοιρασμένα μεταξύ όλων των χρηστών του συστήματος ή του δικτύου
- και πως μπορούν να τεθούν συγκεκριμένα όρια σε χρήστες ή ομάδες
- χρηστών, προστατεύοντας κρίσιμους πόρους του συστήματος από
- υπερβολική χρήση.</para>
- </listitem>
-
- <listitem>
- <para>Ισχυρές δυνατότητες <emphasis>δικτύωσης TCP/IP</emphasis>
- <indexterm><primary>δικτυακές δυνατότητες TCP/IP</primary></indexterm>
- <indexterm><primary>TCP/IP networking</primary></indexterm>
- (TCP/IP networking) με υποστήριξη για βιομηχανικά πρότυπα όπως
- τα SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec και IPv6. Αυτό
- σημαίνει πως ένα μηχάνημα &os; μπορεί να αλληλεπιδρά εύκολα με
- άλλα συστήματα και να εργάζεται σαν εταιρικός εξυπηρετητής,
- υποστηρίζοντας λειτουργίες ζωτικής σημασίας, όπως NFS
- (απομακρυσμένη πρόσβαση σε αρχεία) και υπηρεσίες ηλεκτρονικού
- ταχυδρομείου (e-mail), ή την παρουσία του οργανισμού σας στο
- διαδίκτυο μέσω των υπηρεσιών WWW, FTP, routing και firewall
- (ασφάλειας).</para>
- </listitem>
-
- <listitem>
- <para>Η <emphasis>προστασία της μνήμης</emphasis>
- <indexterm><primary>προστασία μνήμης</primary></indexterm>
- <indexterm><primary>memory protection</primary></indexterm>
- (memory protection) εξασφαλίζει ότι οι διάφορες εφαρμογές
- (ή οι χρήστες) δεν αλληλεπιδρούν μεταξύ τους. Μια εφαρμογή που
- παρουσιάζει κάποιο πρόβλημα δε μπορεί να επηρεάσει άλλες με
- κανέναν τρόπο.</para>
- </listitem>
-
- <listitem>
- <para>Το βιομηχανικό πρότυπο <emphasis>X Window System</emphasis>
- <indexterm><primary>Σύστημα X Windows</primary></indexterm>
- <indexterm><primary>X Window System</primary></indexterm>
- (X11R6) προσφέρει γραφικό περιβάλλον εργασίας (GUI) σε
- οποιοδήποτε μηχάνημα και διατίθεται με τον πλήρη πηγαίο
- κώδικα.</para>
- </listitem>
-
- <listitem>
- <para>
- <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>
- <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>
-
- <listitem>
- <para>Η κατά απαίτηση σελιδοποίηση
- <emphasis>εικονικής μνήμης</emphasis>
- <indexterm><primary>εικονική μνήμη</primary></indexterm>
- <indexterm><primary>virtual memory</primary></indexterm>
- και το <quote>ολοκληρωμένο VM/buffer cache</quote> παρέχουν
- υψηλή απόδοση σε εφαρμογές με αυξημένες ανάγκες σε μνήμη, ενώ
- διατηρούν την ικανοποιητική απόκριση του συστήματος στους άλλους
- χρήστες.</para>
- </listitem>
-
- <listitem>
- <para>Υποστήριξη <emphasis>SMP</emphasis> για μηχανήματα με
- <indexterm><primary>Symmetric Multi-Processing
- (SMP)</primary></indexterm>
- <indexterm><primary>Συμμετρική Πολυεπεξεργασία
- (SMP)</primary></indexterm>
- πολλαπλές CPU.</para>
- </listitem>
-
- <listitem>
- <para>
- <indexterm>
- <primary>compilers</primary>
- <secondary>C</secondary>
- </indexterm>
- <indexterm>
- <primary>compilers</primary>
- <secondary>C++</secondary>
- </indexterm>
- Πλήρης σειρά εργαλείων ανάπτυξης για
- <emphasis>C</emphasis>, <emphasis>C++</emphasis>.
- Στη Συλλογή των Ports και των
- έτοιμων πακέτων, θα βρείτε πολλές ακόμα γλώσσες προγραμματισμού,
- κατάλληλες τόσο για έρευνα όσο και για ανάπτυξη λογισμικού.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Η διαθεσιμότητα του πηγαίου κώδικα</emphasis>
- <indexterm><primary>πηγαίος κώδικας</primary></indexterm>
- <indexterm><primary>source code</primary></indexterm>
- ολόκληρου του συστήματος σημαίνει ότι έχετε τον υψηλότερο βαθμό
- ελέγχου στο περιβάλλον σας. Γιατί να είστε κλειδωμένοι σε ένα
- κλειστό σύστημα και να είστε εξαρτημένοι από τον προμηθευτή σας,
- όταν μπορείτε να έχετε ένα πραγματικά ανοιχτό σύστημα;</para>
- </listitem>
-
- <listitem>
- <para>Εκτεταμένη <emphasis>online τεκμηρίωση</emphasis>.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Και πολλά άλλα!</emphasis></para>
- </listitem>
- </itemizedlist>
-
- <indexterm><primary>U.C. Berkeley</primary></indexterm>
- <para>Το &os; βασίζεται στην έκδοση 4.4BSD-Lite
- <indexterm><primary>4.4BSD-Lite</primary></indexterm>
- του Computer Systems Research Group (CSRG)
- <indexterm><primary>Computer Systems Research Group
- (CSRG)</primary></indexterm>
- του Πανεπιστημίου της Καλιφόρνιας στο
- Berkeley, και συνεχίζει την διακεκριμένη παράδοση του στην ανάπτυξη
- συστημάτων BSD. Επιπρόσθετα στο εξαίρετο έργο που παρείχε το CSRG, το
- &os;&nbsp;Project ξόδεψε πολλές χιλιάδες ώρες στη βελτιστοποίηση του
- συστήματος για μέγιστες επιδόσεις και αξιοπιστία σε καθημερινές
- καταστάσεις πραγματικού φόρτου εργασίας. Το &os; προσφέρει
- απόδοση και αξιοπιστία ισάξια με αντίστοιχων εμπορικών συστημάτων
- και τα συνδυάζει με τελευταίες τεχνολογιές και χαρακτηριστικά
- που δεν υπάρχουν πουθενά αλλού.</para>
-
- <para>Οι εφαρμογές στις οποίες μπορεί να χρησιμοποιηθεί το &os;,
- πραγματικά περιορίζονται μόνο από την φαντασία σας. Από ανάπτυξη
- λογισμικού μέχρι αυτοματισμούς εργοστασίων, από απογραφή ειδών
- μέχρι την διόρθωση του αζιμούθιου απομακρυσμένων δορυφορικών
- κεραιών, εάν μπορεί να γίνει με ένα εμπορικό προϊόν &unix;, είναι
- παραπάνω από πιθανό ότι μπορεί να γίνει και με το &os;! Το &os;
- επίσης ωφελείται σημαντικά από κυριολεκτικά χιλιάδες εφαρμογές
- υψηλής ποιότητας που αναπτύσσονται από κέντρα ερευνών και
- πανεπιστήμια σε όλο τον κόσμο, και συχνά διατίθενται σε χαμηλό
- κόστος ή δωρεάν. Το πλήθος των εμπορικών εφαρμογών που διατίθενται
- για το &os;, αυξάνεται επίσης καθημερινά.</para>
-
- <para>Ο πηγαίος κώδικας του ίδιου του &os; είναι πλήρως διαθέσιμος,
- και έτσι το σύστημα μπορεί να προσαρμοστεί σε αφάνταστα υψηλό
- επίπεδο για ειδικές εφαρμογές ή projects, και με τρόπους γενικά μη
- πραγματοποιήσιμους σε άλλα λειτουργικά εμπορικών προμηθευτών.
- Παρακάτω θα βρείτε μερικά μόνο παραδείγματα από εφαρμογές στις
- οποίες χρησιμοποιείται αυτή τη στιγμή το &os;:</para>
-
- <itemizedlist>
- <listitem>
- <para><emphasis>Υπηρεσίες Ίντερνετ:</emphasis> Το ισχυρό σύστημα
- δικτύωσης TCP/IP του &os;, το αναδεικνύει σε ιδανική πλατφόρμα για
- μια μεγάλη γκάμα υπηρεσιών Ίντερνετ όπως:</para>
-
- <itemizedlist>
- <listitem>
- <para>Εξυπηρετητές ιστοσελίδων World Wide Web
- <indexterm><primary>web servers</primary></indexterm>
- (κοινούς ή με ασφαλή σύνδεση [SSL])</para>
- </listitem>
-
- <listitem>
- <para>Δρομολόγηση πρωτοκόλλων IPv4 και IPv6</para>
- </listitem>
-
- <listitem>
- <para>Firewalls
- <indexterm><primary>firewall</primary></indexterm>
- και πύλες NAT
- <indexterm><primary>NAT</primary></indexterm>
- (<quote>IP masquerading</quote>)</para>
- </listitem>
-
- <listitem>
- <para>Εξυπηρετητές FTP <indexterm>
- <primary>FTP servers</primary></indexterm></para>
- </listitem>
-
- <listitem>
- <para>
- <indexterm>
- <primary>ηλεκτρονικό ταχυδρομείο</primary>
- <see>email</see>
- </indexterm>
- <indexterm>
- <primary>email</primary>
- </indexterm>
- Εξυπηρετητές ηλεκτρονικού ταχυδρομείου</para>
- </listitem>
-
- <listitem>
- <para>Και άλλα...</para>
- </listitem>
- </itemizedlist>
- </listitem>
-
- <listitem>
- <para><emphasis>Εκπαίδευση:</emphasis> Είστε φοιτητής
- πληροφορικής ή κάποιου σχετικού τομέα; Δεν υπάρχει
- καλύτερος τρόπος να μάθετε για λειτουργικά συστήματα,
- αρχιτεκτονικές Η/Υ, και συστήματα δικτύων από την πρακτική
- εμπειρία και την σε βάθος γνώση που μπορεί να σας παρέχει το
- &os;. Το μεγάλο πλήθος των δωρεάν διαθέσιμων πακέτων εφαρμογών
- CAD, γραφικής σχεδίασης, και μαθηματικών, κάνουν το &os;
- εξαιρετικά χρήσιμο σε όσους το κύριο ενδιαφέρον τους στους
- υπολογιστές είναι να
- <emphasis>κάνουν τη δουλειά τους</emphasis>!</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Έρευνα:</emphasis> Με διαθέσιμο τον πηγαίο
- κώδικα ολόκληρου του συστήματος, το &os; είναι μία
- εξαίρετη πλατφόρμα για την έρευνα στα λειτουργικά συστήματα
- όπως επίσης για άλλους κλάδους της πληροφορικής. Η φύση της
- ελεύθερης διάθεσης του &os; επιτρέπει επίσης σε απομακρυσμένες
- ομάδες να συνεργάζονται σε ιδέες ή να μοιράζονται την ανάπτυξη
- εφαρμογών, χωρίς να ανησυχούν για άδειες χρήσης και χωρίς να
- περιορίζεται η δυνατότητα τους για ελεύθερη συζήτηση οποιουδήποτε
- θέματος σε ανοιχτές ομάδες συζήτησης (forums).</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Δικτύωση:</emphasis> Χρειάζεστε ένα καινούργιο
- router (δρομολογητή);
- <indexterm><primary>router</primary></indexterm>
- Ένα εξυπηρετητή DNS;
- <indexterm><primary>DNS Server</primary></indexterm>
- Ένα firewall για να κρατάτε τον κόσμο έξω από το εσωτερικό σας
- δίκτυο; Το &os; μπορεί εύκολα να μετατρέψει εκείνο το παλιό PC που
- κάθεται αχρησιμοποίητο στην γωνία, σε ένα προηγμένο δρομολογητή
- με εξεζητημένες δυνατότητες φιλτραρίσματος πακέτων.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Embedded:</emphasis> Το &os; αποτελεί μια εξαιρετική
- πλατφόρμα για τη δημιουργία embedded συστημάτων.
- <indexterm><primary>embedded</primary></indexterm>
- Με υποστήριξη για τις πλατφόρμες &arm;, &mips; και &powerpc; και
- σε συνδυασμό με αξιόπιστη δικτύωση, προηγμένα χαρακτηριστικά και
- την ελεύθερη άδεια <link
- xlink:href="&url.books.faq;/introduction.html#bsd-license-restrictions">BSD</link> το &os; είναι ένα εξαιρετικό σημείο εκκίνησης για embedded
- συστήματα router, firewall και άλλα.</para>
- </listitem>
-
- <listitem>
- <para>
- <indexterm>
- <primary>Σύστημα X Window</primary>
- <secondary>XFree86</secondary>
- </indexterm>
- <indexterm>
- <primary>Σύστημα X Window</primary>
- <secondary>Accelerated-X</secondary>
- </indexterm>
- <emphasis>Desktop:</emphasis> Το &os;
- είναι μια εξαίρετη επιλογή για ένα οικονομικό desktop.
- Το &os; σας επιτρέπει να επιλέξετε ανάμεσα σε πολλά ανοικτού
- κώδικα περιβάλλοντα εργασίας τα οποία περιλαμβάνουν το
- <application>GNOME</application> και το
- <application>KDE</application>.
- To &os; μπορεί να ξεκινήσει ακόμα και <quote>diskless</quote>
- (χωρίς σκληρό δίσκο), κάνοντας έτσι τους προσωπικούς σταθμούς
- εργασίας ακόμη πιο φτηνούς και ευκολότερους στη
- διαχείριση.</para>
- </listitem>
-
- <listitem>
- <para><emphasis>Ανάπτυξη Λογισμικού:</emphasis> Το βασικό
- σύστημα του &os; διατίθεται ολοκληρωμένο, με πλήρη σειρά
- εργαλείων ανάπτυξης, που περιλαμβάνουν ένα πλήρη
- C/C++
- <indexterm><primary>Compiler</primary></indexterm>
- compiler και debugger.</para>
- </listitem>
- </itemizedlist>
-
- <para>Το &os; είναι διαθέσιμο για δωρεάν κατέβασμα ή μπορείτε να το
- προμηθευτείτε σε CD-ROM ή DVD. Δείτε το <xref linkend="mirrors"/>
- για περισσότερες πληροφορίες για το πως να αποκτήσετε το &os;.</para>
- </sect2>
-
- <sect2 xml:id="introduction-nutshell-users">
- <title>Ποιος χρησιμοποιεί &os;;</title>
-
- <indexterm>
- <primary>χρήστες</primary>
- <secondary>μεγάλες τοποθεσίες που τρέχουν &os;</secondary>
- </indexterm>
-
- <para>Τα προηγμένα χαρακτηριστικά, η αποδεδειγμένη ασφάλεια και ο
- τακτικός κύκλος νέων εκδόσεων του &os;, σε συνδυασμό με την ελεύθερη
- άδεια χρήσης του, το κάνουν ιδανικό ως πλατφόρμα για τη δημιουργία
- πολλών εμπορικών και ανοιχτών συσκευών και προϊόντων. Κάποιες από
- τις μεγαλύτερες εταιρίες στο χώρο του IT χρησιμοποιούν το &os;:</para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://www.apache.org/">Apache</link>
- <indexterm><primary>Apache</primary></indexterm> - Το Apache
- Software Foundation χρησιμοποιεί το &os; στα περισσότερα
- δημόσια συστήματα του, που συμπεριλαμβάνουν ένα από τα
- μεγαλύτερα αποθετήρια SVN στον κόσμο με περισσότερα από 1.4
- εκατομμύρια commits.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.apple.com">Apple</link>
- <indexterm><primary>Apple</primary></indexterm> - Το OS X
- δανείζεται πολλά στοιχεία από το &os; για το υποσύστημα
- δικτύωσης και τα εργαλεία χρήστη (userland). To iOS περιέχει
- επίσης στοιχεία που προέρχονται από το &os;.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.cisco.com/">Cisco</link>
- <indexterm><primary>Cisco</primary></indexterm> - Οι συσκευές
- ασφαλείας IronPort και anti-spam χρησιμοποιούν ένα τροποποιημένο
- πυρήνα του &os;.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.citrix.com/">Citrix</link>
- <indexterm>
- <primary>Citrix</primary>
- </indexterm> - Η σειρά συσκευών ασφαλείας NetScaler
- παρέχει load balancing στα επίπεδα 4-7, caching περιεχομένου,
- firewall σε επίπεδο εφαρμογών, ασφαλές VPN και υπηρεσίες
- mobile cloud σε συνδυασμό με την ισχύ του τερματικού του
- &os;.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.dell.com/KACE">Dell
- KACE</link>
- <indexterm>
- <primary>Dell KACE</primary>
- </indexterm> - Οι συσκευές διαχείρισης συστημάτων KACE
- χρησιμοποιούν &os; λόγω της σταθερότητας και επεκτασιμότητας
- του καθώς και της κοινότητας που στηρίζει την συνεχή
- ανάπτυξη του.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.experts-exchange.com/">Experts
- Exchange</link>
- <indexterm>
- <primary>Experts Exchange</primary>
- </indexterm> - Όλοι οι δημόσιοι εξυπηρετητές ιστοσελίδων
- χρησιμοποιούν &os; με εκτεταμένη χρήση jails για την
- απομόνωση των περιβάλλοντων ανάπτυξης και ελέγχου, χωρίς
- την πρόσθετη επιβάρυνση της εικονικοποίησης
- (virtualization).</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.isilon.com/">Isilon</link>
- <indexterm>
- <primary>Isilon</primary>
- </indexterm> - Τα επαγγλεματικά συστήματα αποθήκευσης της
- Isilon βασίζονται στο &os;. Η εξαιρετικά ελεύθερη άδεια
- του &os; επέτρεψε στην Isilon να ενσωματώσει το δικό της
- κώδικα (με τα δικά της πνευματικά δικαιώματα) στον πυρήνα
- και να επικεντρώσει την προσπάθεια της στη δημιουργία του
- προϊόντος της, αντί να ξαναγράψει ένα λειτουργικό σύστημα
- από την αρχή.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.ixsystems.com/">iXsystems</link>
- <indexterm>
- <primary>iXsystems</primary>
- </indexterm> - Η σειρά συσκευών αποθήκευσης TrueNAS
- βασίζεται στο &os;. Εκτός από τα εμπορικά της προϊόντα, η
- iXsystems κατευθύνει επίσης την ανάπτυξη των projects
- ανοικτού λογισμικού PC-BSD και FreeNAS.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.juniper.net/">Juniper</link>
- <indexterm>
- <primary>Juniper</primary>
- </indexterm> - Το λειτουργικό σύστημα JunOS το οποίο
- χρησιμοποιείται σε όλες τις συσκευές δικτύωσης της Juniper
- (που περιλαμβάνουν routers, switches και συσκευές ασφαλείας)
- βασίζεται στο &os;. Η Juniper είναι μια εταιρία που
- επιδεικνύει τη συμβιωτική σχέση μεταξύ του Project και
- των εμπορικών προιόντων. Οι βελτιώσεις που παράγονται
- στη Juniper ενσωματώνονται στο &os; μειώνοντας έτσι την
- πολυπλοκότητα της μελλοντικής ενσωμάτωσης νέων χαρακτηριστικών
- του &os; πίσω στο JunOS.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.mcafee.com/">McAfee</link>
- <indexterm>
- <primary>McAfee</primary>
- </indexterm> - Το SecurOS, που αποτελεί τη βάση των
- προϊόντων firewall της εταιρίας και περιλαμβάνει το
- Sidewinder, βασίζεται στο &os;.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.netapp.com/">NetApp</link>
- <indexterm>
- <primary>NetApp</primary>
- </indexterm> - Οι συσκευές αποθήκευσης Data ONTAP GX
- βασίζονται στο &os;. Επιπρόσθετα, η NetApp έχει
- συνεισφέρει αρκετά νέα χαρακτηριστικά, συμπεριλαμβανομένου
- του bhyve, του νέου hypervisor ύπο άδεια BSD.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.netflix.com/">Netflix</link>
- <indexterm>
- <primary>Netflix</primary>
- </indexterm> - Η συσκευή OpenConnect που χρησιμοποιεί η
- Netflix για το streaming ταινιών στους πελάτες της, βασίζεται
- στο &os;. Η Netflix έχει εκτεταμένη συνεισφορά στον κώδικα
- και εργάζεται ώστε να μην υπάρχουν διαφορές μεταξύ του
- κώδικα της και του &os;. Οι συσκευές Netflix OpenConnect
- είναι υπεύθυνες για περισσότερο από το 32% της συνολικής
- κίνησης Internet στη Βόρειο Αμερική.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.sandvine.com/">Sandvine</link>
- <indexterm>
- <primary>Sandvine</primary>
- </indexterm> - Η Sandvine χρησιμοποιεί το &os; ως βάση
- για την υψηλής απόδοσης δικτυακή πλατφόρμα επεξεργασίας
- που χρησιμοποιεί στα προϊόντα της.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.sony.com/">Sony</link>
- <indexterm>
- <primary>Sony</primary>
- </indexterm> - Η κονσόλα παιχνιδιών PlayStation 4 χρησιμοποιεί
- μια τροποποιημένη έκδοση του &os;.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.sophos.com/">Sophos</link>
- <indexterm>
- <primary>Sophos</primary>
- </indexterm> - Η συσκευή Sophos Email Appliance χρησιμοποιεί
- μια ενισχυμένης ασφάλειας έκδοση του &os; και σαρώνει τα
- εισερχόμενα email για spam και ιούς καθώς και τα εξερχόμενα
- για ανεπιθύμητα προγράμματα (malware) και πιθανή απώλεια
- ευαίσθητων δεδομένων.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.spectralogic.com/">Spectra
- Logic</link>
- <indexterm>
- <primary>Spectra Logic</primary>
- </indexterm> - Η σειρά αποθηκευτικών μέσων nTier χρησιμοποιεί
- &os; και OpenZFS.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.weather.com/">The Weather
- Channel</link>
- <indexterm>
- <primary>The Weather Channel</primary>
- </indexterm> - Η συσκευή IntelliStar που εγκαθίσταται στους
- παρόχους καλωδιακής τηλεόρασης και παρέχει δελτία καιρού στους
- συνδρομητές, χρησιμοποιεί &os;.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.verisign.com/">Verisign</link>
- <indexterm>
- <primary>Verisign</primary>
- </indexterm> - Η Verisign είναι υπεύθυνη για τη λειτουργία
- των τομέων .com και .net και των αντίστοιχων εξυπηρετητών
- DNS. Χρησιμοποιεί διάφορα δικτυακά λειτουργικά συστήματα,
- συμπεριλαμβανομένου του &os;, για να εξασφαλίσει ότι δεν
- μπορεί να υπάρξει κάποιο κοινό σημείο αποτυχίας στην
- δικτυακή υποδομή της.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.voxer.com/">Voxer</link>
- <indexterm>
- <primary>Voxer</primary>
- </indexterm> - Η Voxer χρησιμοποιεί το &os; με ZFS στην
- πλατφόρμα μηνυμάτων που εχει αναπτύξει για κινητά τηλέφωνα.
- Η Voxer αρχικά χρησιμοποιούσε ένα σύστημα που προέρχονταν
- από το Solaris, αλλά το άλλαξε σε &os; λόγω της εξαιρετικής
- του τεκμηρίωσης, της μεγαλύτερης και πιο ενεργής κοινότητας
- και του φιλικότερου περιβάλλοντος ανάπτυξης. Εκτός από τα
- ιδιαίτερα κρίσιμα χαρακτηριστικά - όπως το <acronym>ZFS</acronym>
- και το DTrace - το &os; επίσης διαθέτει και υποστήριξη TRIM για
- το <acronym>ZFS</acronym>.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.whatsapp.com/">WhatsApp</link>
- <indexterm>
- <primary>WhatsApp</primary>
- </indexterm> - Όταν η WhatsApp χρειάστηκε μια πλατφόρμα
- ικανή να αντιμετωπίσει περισσότερες από 1 εκατομμύριο
- ταυτόχρονες συνδέσεις TCP ανά εξυπηρετητή, επέλεξαν
- το &os;. Έπειτα πέτυχαν περισσότερες από
- 2.5 εκατομμύρια συνδέσεις ανά εξυπηρετητή.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://wheelsystems.com/">Wheel
- Systems</link>
- <indexterm>
- <primary>Wheel Systems</primary>
-
- </indexterm> - Η συσκευή ασφαλείας FUDO επιτρέπει στις
- επιχειρήσεις να ελέγχουν, να κατευθύνουν και να καταγράφουν
- διαχειριστές και εργαζομένους άλλων εταιριών που εργάζονται
- στα συστήματα τους. Βασίζεται στα καλύτερα χαρακτηριστικά
- ασφαλείας του &os; που περιλαμβάνουν τεχνολογίες όπως ZFS,
- GELI, Capsicum, HAST και auditdstd.</para>
- </listitem>
- </itemizedlist>
-
- <para>Το &os; έχει επίσης βοηθήσει στη δημιουργία και άλλων
- σχετιζόμενων έργων ανοικτού λογισμικού:</para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://bsdrp.net/">BSD
- Router</link>
- <indexterm>
- <primary>BSD Router</primary>
- </indexterm> - Ένας εναλλακτικός router για μεγάλες
- επιχειρήσεις που χρησιμοποιεί &os; και είναι σχεδιασμένος
- να λειτουργεί σε απλά PC της αγοράς.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.freenas.org/">FreeNAS</link>
- <indexterm>
- <primary>FreeNAS</primary>
- </indexterm> - Μια τροποποιημένη έκδοση του &os; σχεδιασμένη
- για χρήση ως συσκευή δικτυακής αποθήκευσης. Παρέχει γραφική
- διεπαφή γραμμένη σε Python η οποία απλουστεύει τη διαχείριση
- των συστημάτων αρχείων UFS και ZFS. Περιλαμβάνει υποστήριξη
- για NFS, SMB/CIFS, AFP, FTP και iSCSI. Έχει δυνατότητα
- επέκτασης μέσω πρόσθετων (plugins) τα οποία βασίζονται σε
- &os; jails.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.ghostbsd.org/">GhostBSD</link>
- <indexterm>
- <primary>GhostBSD</primary>
- </indexterm> - Μια διανομή του &os; για χρήση desktop.
- Παρέχεται με το περιβάλλον εργασίας Gnome.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://mfsbsd.vx.sk/">mfsBSD</link>
- <indexterm>
- <primary>mfsBSD</primary>
- </indexterm> - Ένα σύνολο εργαλείων για τη δημιουργία ενός
- συστήματος &os; το οποίο εκτελείται αποκλειστικά από
- τη μνήμη.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.nas4free.org/">NAS4Free</link>
- <indexterm>
- <primary>NAS4Free</primary>
- </indexterm> - Μια διανομή για εξυπηρετητές αρχείων που
- βασίζεται στο &os; και παρέχεται με μια web διεπαφή ρυθμίσεων
- γραμμένη σε PHP.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.pcbsd.org/">PC-BSD</link>
- <indexterm>
- <primary>PC-BSD</primary>
- </indexterm> - Μια τροποποιημένη διανομή του &os; που
- προσανατολίζεται σε χρήση desktop και παρέχει γραφικά
- εργαλεία για να αναδείξει τη δύναμη του &os; σε όλους τους
- χρήστες. Είναι σχεδιασμένη ώστε να διευκολύνει τη μετάβαση
- των χρηστών Windows και OS X στο &os;.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.pfsense.org/">pfSense</link>
- <indexterm>
- <primary>pfSense</primary>
- </indexterm> - Μια διανομή για firewall που βασίζεται στο &os;
- και περιέχει τεράστια συλλογή χαρακτηριστικών και εκτεταμένη
- υποστήριξη για IPv6.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://m0n0.ch/wall/">m0n0wall</link>
- <indexterm>
- <primary>m0n0wall</primary>
- </indexterm> - Μια λιτή έκδοση του &os; με ένα εξυπηρετητή
- ιστοσελίδων και διεπαφή σε PHP. Έχει σχεδιαστεί ως συσκευή
- firewall και καταλαμβάνει χώρο μικρότερο από 12&nbsp;MB.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://zrouter.org/">ZRouter</link>
- <indexterm>
- <primary>ZRouter</primary>
- </indexterm> - Ένα εναλλακτικό firmware ανοικτού λογισμικού
- για δικτυακές συσκευές, βασισμένο στο &os;. Έχει σχεδιαστεί
- ώστε να αντικαθιστά το ιδιοταγές firmware εμπορικών
- routers.</para>
- </listitem>
- </itemizedlist>
-
- <para>Το &os; χρησιμοποιείται για να υποστηρίζει μερικές από τις
- μεγαλύτερες τοποθεσίες στο Ίντερνετ, περιλαμβανομένων των:</para>
-
- <itemizedlist>
- <listitem>
- <para><link xlink:href="http://www.yahoo.com/">Yahoo!</link>
- <indexterm>
- <primary>Yahoo!</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.yandex.ru/">Yandex</link>
- <indexterm>
- <primary>Yandex</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.rambler.ru/">Rambler</link>
- <indexterm>
- <primary>Rambler</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.sina.com/">Sina</link>
- <indexterm>
- <primary>Sina</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.pair.com/">Pair
- Networks</link>
- <indexterm>
- <primary>Pair Networks</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.sony.co.jp/">Sony
- Japan</link>
- <indexterm>
- <primary>Sony Japan</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.netcraft.com/">Netcraft</link>
- <indexterm>
- <primary>Netcraft</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="https://signup.netflix.com/openconnect">Netflix</link>
- <indexterm>
- <primary>Netflix</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.163.com/">NetEase</link>
- <indexterm>
- <primary>NetEase</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="http://www.weathernews.com/">Weathernews</link>
- <indexterm>
- <primary>Weathernews</primary>
- </indexterm></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.telehouse.com/">TELEHOUSE
- America</link>
- <indexterm>
- <primary>TELEHOUSE America</primary>
- </indexterm></para>
- </listitem>
- </itemizedlist>
-
- <para>και πολλών ακόμη. Στη Wikipedia θα βρείτε μια <link
- xlink:href="http://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD">λίστα προϊόντων που βασίζονται στο &os;</link>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="history">
- <title>Πληροφορίες για το &os;&nbsp;Project</title>
-
- <para>Το ακόλουθο τμήμα παρέχει μερικές πληροφορίες σχετικές με
- το project, και περιλαμβάνει μια σύντομη ιστορία του &os;, τους
- στόχους, και το μοντέλο ανάπτυξης του.</para>
-
- <sect2 xml:id="intro-history">
- <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 και τον Jordan Hubbard.</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 φούσκωνε ολοένα και περισσότερο
- με το πέρασμα των ημερών, το ενδιάμεσο <quote>cleanup</quote> snapshot
- αποτέλεσε μια συμπαράσταση για τον Bill. Τα σχέδια αυτά
- διακόπηκαν απότομα, όταν ξαφνικά ο 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 είχε
- πάρει σωστή πορεία και ίσως έτεινε να γίνει πραγματικότητα, ο Jordan
- ήρθε σε επαφή με την 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. Παρά το γεγονός ότι ήταν ακόμη αρκετά
- πρόχειρη μέσες-άκρες, η έκδοση ήταν μια σημαντική επιτυχία και την
- ακολούθησε η πιο αξιόπιστη και ευκολότερη ως προς την εγκατάσταση
- έκδοση &os;&nbsp;2.0.5 τον Ιούνιο του 1995.</para>
-
- <para>Από την εποχή εκείνη, το &os; έχει δημιουργήσει σειρά νέων
- εκδόσεων οι οποίες βελτιώνουν την ταχύτητα, σταθερότητα και τα
- χαρακτηριστικά των προηγούμενων.</para>
-
- <para>Για την ώρα, η μακρόχρονη ανάπτυξη συνεχίζεται στον κλάδο
- 10.X-CURRENT (trunk) και τα στιγμιότυπα (snapshots) του 10.X
- είναι πάντοτε διαθέσιμα μέσω του <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/">εξυπηρετητή snapshot</link>.</para>
- </sect2>
-
- <sect2 xml:id="goals">
- <info>
- <title>Στόχοι του &os;&nbsp;Project</title>
-
- <authorgroup>
- <author>
- <personname>
- <firstname>Jordan</firstname>
- <surname>Hubbard</surname>
- </personname>
- <contrib>Συνεισφορά του </contrib>
- </author>
- </authorgroup>
- </info>
-
- <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 xml:id="development">
- <info>
- <title>Το Μοντέλο Ανάπτυξης του &os;</title>
- <authorgroup>
- <author>
- <personname>
- <firstname>Satoshi</firstname>
- <surname>Asami</surname>
- </personname>
- <contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>FreeBSD Project</primary>
- <secondary>μοντέλο ανάπτυξης</secondary>
- </indexterm>
- <para>Η ανάπτυξη του &os; είναι μία πολύ ανοικτή και ευέλικτη
- διαδικασία, αφού κυριολεκτικά βασίζεται στην συνεισφορά
- χιλιάδων ανθρώπων από όλο τον κόσμο, όπως μπορείτε να δείτε από
- την <link
- xlink:href="&url.articles.contributors;/article.html">λίστα των
- συνεργατών</link> μας. Η υποδομή ανάπτυξης του &os; επιτρέπει
- στα χιλιάδες μέλη των συνεργατών μας να συνεργάζονται μέσω του
- Ίντερνετ. Είμαστε σταθερά σε αναζήτηση για νέα μέλη στην ομάδα
- ανάπτυξης και για ιδέες, και όσοι ενδιαφέρονται να ασχοληθούν ακόμη
- περισσότερο με το project χρειάζεται απλά να επικοινωνήσουν μαζί μας
- στην &a.hackers;. Επίσης η &a.announce; είναι διαθέσιμη σε όσους
- επιθυμούν να ενημερώσουν άλλους χρήστες του &os; για βασικούς
- τομείς εργασίας πάνω στο Project.</para>
-
- <para>Χρήσιμα πράγματα που πρέπει να γνωρίζετε για το &os;&nbsp;Project
- και την διαδικασία ανάπτυξης του, είτε δουλεύετε ανεξάρτητα είτε ως
- στενοί συνεργάτες:</para>
-
- <variablelist>
- <varlistentry>
- <term>Τα SVN repositories<anchor xml:id="development-cvs-repository"/></term>
-
- <listitem>
- <para>
- <indexterm>
- <primary>CVS</primary>
- </indexterm>
-
- <indexterm>
- <primary>CVS Repository</primary>
- </indexterm>
-
- <indexterm>
- <primary>Concurrent Versions System</primary>
- <see>CVS</see>
- </indexterm>
-
- <indexterm>
- <primary>Subversion</primary>
- </indexterm>
-
- <indexterm>
- <primary>Subversion Repository</primary>
- </indexterm>
-
- <indexterm>
- <primary>SVN</primary>
- <see>Subversion</see>
- </indexterm>
- Για πολλά χρόνια, ο κεντρικός κορμός κώδικα του &os;
- συντηρούνταν μέσω του
- <link xlink:href="http://www.nongnu.org/cvs/">CVS</link>
- (Concurrent Versions System), ενός ελεύθερα διαθέσιμου
- εργαλείου ελέγχου πηγαίου κώδικα. Τον Ιούνιο του 2008,
- το Project αποφάσισε τη μετάβαση στο
- <link xlink:href="http://subversion.tigris.org">SVN</link>
- (Subversion). Η αλλαγή κρίθηκε αναγκαία, καθώς οι τεχνικοί
- περιορισμοί του <application>CVS</application> ήταν πλέον
- εμφανείς, εξαιτίας του μεγέθους του αποθηκευμένου κώδικα
- και του ιστορικού που τον συνοδεύει. Η Τεκμηρίωση και η
- Συλλογή των Ports μεταφέρθηκαν επίσης από το
- <application>CVS</application> στο
- <application>SVN</application> το Μάιο και Ιούλιο του 2012
- αντίστοιχα. Ακολουθήστε το σύνδεσμο <link
- linkend="synching">Συγχρονίζοντας τον Πηγαίο σας Κώδικα</link>
- για περισσότερες πληροφορίες σχετικά με την ανάκτηση του
- &os; <literal>src/</literal> repository και τον σύνδεσμο <link
- linkend="ports-using">Χρησιμοποιώντας τη Συλλογή των
- Ports</link> για λεπτομέρειες σχετικές με την ανάκτηση της
- Συλλογής των Ports.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Η λίστα των committers<anchor
- xml:id="development-committers"/></term>
-
- <listitem>
- <para>Οι <firstterm>committers</firstterm>
- <indexterm><primary>committers</primary></indexterm>
- είναι άτομα που έχουν άδεια
- <emphasis>εγγραφής (write)</emphasis> στο δέντρο Subversion και
- είναι εξουσιοδοτημένοι να κάνουν μετατροπές στον κώδικα του
- &os; (ο όρος <quote>committer</quote>
- προέρχεται από την εντολή
- <command>commit</command>, η οποία χρησιμοποιείται για να
- γίνουν νέες αλλαγές στο repository). Οποιοσδήποτε μπορεί
- να υποβάλλει ένα σφάλμα (bug) στη <link
- xlink:href="https://bugs.FreeBSD.org/submit/">Βάση
- Δεδομένων Προβλημάτων</link>. Πριν την υποβολή, καλό είναι να
- γίνει σχετική αναζήτηση στις λίστες ταχυδρομείου, τα φορουμς
- και τα κανάλια IRC του &os; για να επιβεβαιωθεί ότι όντως
- πρόκειται για πρόβλημα του λειτουργικού.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>The FreeBSD core team<anchor
- xml:id="development-core"/></term>
-
- <listitem>
- <para>Η <firstterm>&os; core team</firstterm> θα ήταν ισοδύναμη
- <indexterm><primary>core team</primary></indexterm>
- με το διοικητικό συμβούλιο αν το &os;&nbsp;Project ήταν μια
- ανώνυμη εταιρεία. Ο πρωταρχικός στόχος της core team είναι να
- εξασφαλίσει ότι το project, στο σύνολο του, είναι σε καλή
- κατάσταση και να το οδηγεί προς την σωστή κατεύθυνση. Μια από
- τις λειτουργίες της core team είναι να προσκαλεί αφοσιωμένους
- και υπεύθυνους developers να συμμετέχουν στην ομάδα ανάπτυξης
- (τους committers) καθώς και να βρίσκει νέα μέλη για την ίδια
- την core team καθώς κάποιοι αποχωρούν. Η παρούσα core team
- εκλέχτηκε από ένα σύνολο υποψηφίων committers τον Ιούλιο του
- 2014. Εκλογές διεξάγονται κάθε 2 χρόνια.</para>
-
- <note>
- <para>Όπως και τα περισσότερη μέλη της ομάδας ανάπτυξης, τα
- περισσότερα μέλη του core team είναι εθελοντές όσον
- αφορά την ανάπτυξη του &os; και δεν έχουν οικονομικής φύσεως
- οφέλη από το project, επομένως η <quote>δέσμευση</quote> δεν
- θα πρέπει να παρερμηνεύεται ως
- <quote>εγγυημένη υποστήριξη</quote>. Η παραπάνω παρομοίωση
- με το <quote>διοικητικό συμβούλιο</quote> δεν είναι πολύ
- ακριβής, ίσως είναι καταλληλότερο να πούμε ότι πρόκειται
- για ανθρώπους που θυσίασαν τις ζωές τους για χάρη του &os;
- ενάντια στην καλύτερη τους κρίση!</para>
- </note>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Εξωτερικοί συνεργάτες</term>
-
- <listitem>
-
- <para>Τέλος, αλλά οπωσδήποτε όχι μικρότερης σημασίας, η
- μεγαλύτερη ομάδα ανάπτυξης είναι οι ίδιοι οι χρήστες που μας
- παρέχουν σχόλια και διορθώσεις των bug σε σχεδόν σταθερή βάση.
- Ο κύριος τρόπος για να κρατάτε επαφή με την μη-συγκεντρωτική
- ομάδα ανάπτυξης του &os; είναι να γίνετε συνδρομητές στην
- &a.hackers; όπου γίνονται οι ανάλογες συζητήσεις. Δείτε το
- <xref linkend="eresources"/> για περισσότερες πληροφορίες
- σχετικά με τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου του
- &os;.</para>
-
- <para><citetitle><link
- xlink:href="&url.articles.contributors;/article.html">Η Λίστα
- Συνεργατών του &os;</link></citetitle>
- <indexterm><primary>contributors</primary></indexterm>
- είναι μεγάλη και συνεχώς αυξανόμενη, επομένως γιατί να μην
- γίνετε και εσείς μέλος της και να συμβάλλετε σήμερα σε κάτι
- στο &os;;</para>
-
- <para>Η παροχή κώδικα δεν είναι ο μόνος τρόπος για να
- συνεισφέρετε στο project. Για μια ολοκληρωμένη λίστα των
- πραγμάτων στα οποία χρειαζόμαστε βοήθεια, παρακαλούμε
- επισκεφθείτε την <link
- xlink:href="&url.base;/index.html">Δικτυακή
- τοποθεσία του &os;&nbsp;Project</link>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Συνοψίζοντας, το μοντέλο ανάπτυξης μας είναι οργανωμένο σαν ένα
- χαλαρό σύνολο ομόκεντρων κύκλων. Το συγκεντρωτικό μοντέλο είναι
- σχεδιασμένο για να διευκολύνει τους <emphasis>χρήστες</emphasis> του
- &os;, στους οποίους παρέχεται έτσι ένας εύκολος τρόπος παρακολούθησης
- του βασικού κώδικα, και όχι για να αποκλείουμε πιθανούς συνεργάτες!
- Επιθυμία μας είναι να παρουσιάσουμε ένα σταθερό λειτουργικό σύστημα
- σε συνάρτηση με μια μεγάλη γκάμα από
- <link linkend="ports">προγράμματα εφαρμογών</link> που οι χρήστες να
- μπορούν εύκολα να εγκαθιστούν και να χρησιμοποιούν &mdash; για την
- εκπλήρωση αυτών των στόχων, το μοντέλο αυτό δουλεύει πολύ καλά.</para>
-
- <para>Το μόνο που ζητάμε από όσους ενδιαφέρονται να ενωθούν μαζί μας
- στην ομάδα ανάπτυξης του &os;, είναι λίγη από την ίδια αφοσίωση της
- τωρινής ομάδας, για μια συνεχή πορεία στην επιτυχία του!</para>
- </sect2>
-
- <sect2 xml:id="relnotes">
- <title>Προγράμματα Τρίτων Κατασκευαστών</title>
-
- <para>Εκτός από τη βασική του διανομή, το &os; προσφέρει μια συλλογή
- λογισμικού με χιλιάδες προγράμματα για καθημερινή χρήση. Την στιγμή
- που γράφονται αυτές οι γραμμές, υπάρχουν πάνω από &os.numports;
- ports! Η λίστα των ports ξεκινάει από εξυπηρετητές http (WWW),
- μέχρι παιχνίδια, γλώσσες προγραμματισμού, κειμενογράφους,
- και οτιδήποτε άλλο ενδιάμεσα. Η συνολική Συλλογή των Ports απαιτεί
- προσεγγιστικά &ports.size;. Για να μεταγλωττιστεί
- (compile) ένα port, χρειάζεται απλώς να μεταβείτε στον κατάλογο του
- προγράμματος που επιθυμείτε να εγκαταστήσετε, να πληκτρολογήσετε
- <command>make install</command>, και να αφήσετε το σύστημα σας να
- κάνει τα υπόλοιπα. Ολόκληρη η αυθεντική διανομή για κάθε port που
- κάνετε build παρέχεται δυναμικά έτσι τα ports που δεν χρειάζεστε
- δεν καταλαμβάνουν άσκοπο χώρο στο σκληρό σας δίσκο. Σχεδόν κάθε port
- παρέχεται επίσης και σαν προ-μεταγλωττισμένο (pre-compiled)
- <quote>πακέτο (package)</quote>, το οποίο μπορεί να εγκατασταθεί με
- μια απλή εντολή (<command>pkg install</command>) για εκείνους που δεν
- επιθυμούν να μεταγλωττίζουν τα ports τους από τον πηγαίο κώδικα.
- Περισσότερες πληροφορίες για τα packages και τα ports μπορείτε να
- βρείτε στο <xref linkend="ports"/>.</para>
- </sect2>
-
- <sect2>
- <title>Πρόσθετη Τεκμηρίωση</title>
-
- <para>Όλες οι τρέχουσες εκδόσεις του &os; παρέχουν επιλογή στο πρόγραμμα
- εγκατάστασης (είτε το &man.sysinstall.8; ή το &man.bsdinstall.8;) για
- την εγκατάσταση πρόσθετης τεκμηρίωσης στην τοποθεσία
- <filename>/usr/local/share/doc/freebsd</filename> κατά την αρχική
- εγκατάσταση του συστήματος. Μπορείτε επίσης να εγκαταστήσετε την
- τεκμηρίωση οποιαδήποτε στιγμή αργότερα, χρησιμοποιώντας τα πακέτα
- όπως περιγράφεται στο
- <xref linkend="doc-ports-install-package"/>. Μπορείτε να δείτε
- την τοπικά εγκατεστημένη τεκμηρίωση χρησιμοποιώντας οποιοδήποτε
- πρόγραμμα φυλλομετρητή, στις παρακάτω τοποθεσίες:</para>
-
- <variablelist>
- <varlistentry>
- <term>Το Εγχειρίδιο Χρήσης του &os;</term>
-
- <listitem>
- <para><link xlink:href="file://localhost/usr/local/share/doc/freebsd/handbook/index.html"><filename>/usr/local/share/doc/freebsd/handbook/index.html</filename></link></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Συχνές ερωτήσεις του &os; (FAQ)</term>
-
- <listitem>
- <para><link xlink:href="file://localhost/usr/local/share/doc/freebsd/faq/index.html"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></link></para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Μπορείτε επίσης να δείτε τα πρωτότυπα (και συχνά αναβαθμιζόμενα)
- αντίγραφα στο <uri xlink:href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</uri>.</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/jails/chapter.xml b/el_GR.ISO8859-7/books/handbook/jails/chapter.xml
deleted file mode 100644
index 91ca1a21de..0000000000
--- a/el_GR.ISO8859-7/books/handbook/jails/chapter.xml
+++ /dev/null
@@ -1,1018 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Jails
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/jails/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="jails">
- <info><title>Jails</title>
- <authorgroup>
- <author><personname><firstname>Matteo</firstname><surname>Riondato</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>jails</primary></indexterm>
-
- <sect1 xml: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 xml: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 xml: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 xml: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 μπορούν να έχουν τις δικές τους ομάδες
- χρηστών και τον δικό τους χρήστη <systemitem class="username">root</systemitem>. Φυσικά, ο
- έλεγχος που έχει ο χρήστης <systemitem class="username">root</systemitem> του jail,
- περιορίζεται μέσα στο περιβάλλον του jail, και από την
- οπτική γωνία του host system, ο χρήστης αυτός δεν είναι παντοδύναμος.
- Επιπλέον, ο χρήστης <systemitem class="username">root</systemitem> του jail, δεν μπορεί
- να εκτελέσει κρίσιμες εργασίες στο σύστημα έξω από το περιβάλλον του
- &man.jail.8;. Περισσότερες πληροφορίες σχετικά με τις δυνατότητες και
- τους περιορισμούς του <systemitem class="username">root</systemitem> θα βρείτε στο
- <xref linkend="jails-tuning"/>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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 /here/is/the/jail</userinput>
-&prompt.root; <userinput>mkdir -p $D</userinput> <co xml:id="jailpath"/>
-&prompt.root; <userinput>cd /usr/src</userinput>
-&prompt.root; <userinput>make buildworld</userinput> <co xml:id="jailbuildworld"/>
-&prompt.root; <userinput>make installworld DESTDIR=$D</userinput> <co xml:id="jailinstallworld"/>
-&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co xml:id="jaildistrib"/>
-&prompt.root; <userinput>mount -t devfs devfs $D/dev</userinput> <co xml:id="jaildevfs"/></screen>
-
- <calloutlist>
- <callout arearefs="jailpath">
- <para>Ο καλύτερος τρόπος για να ξεκινήσετε είναι με την επιλογή μιας
- θέσης (διαδρομής) για το jail σας. Εκεί θα βρίσκονται αποθηκευμένα
- τα αρχεία του jail όσο αφορά το σύστημα σας. Μια καλή ιδέα είναι
- το <filename>/usr/jail/jailname</filename>,
- όπου <replaceable>jailname</replaceable> το hostname με το οποίο θα
- αναγνωρίζεται το jail. Το σύστημα αρχείων
- <filename>/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>Το <buildtarget>distribution</buildtarget> target του
- <application>make</application> εγκαθιστά όλα τα αρχεία ρυθμίσεων
- που απαιτούνται. Με απλά λόγια, εγκαθιστά κάθε αρχείο από το
- <filename>/usr/src/etc/</filename> στον κατάλογο
- <filename>/etc</filename> του περιβάλλοντος
- jail: <filename>$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 www</userinput>
-&prompt.root; <userinput>/etc/rc.d/jail stop www</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 xml:id="jails-tuning">
- <title>Λεπτομερής Ρύθμιση και Διαχείριση</title>
-
- <para>Υπάρχουν αρκετές επιλογές που μπορούν να εφαρμοστούν σε ένα jail,
- καθώς και διάφοροι τρόποι για να συνδυαστεί ένα σύστημα &os; με jails
- προκειμένου να παράγουν εφαρμογές υψηλότερου επιπέδου. Η ενότητα αυτή
- παρουσιάζει:</para>
-
- <itemizedlist>
- <listitem>
- <para>Μερικές από τις διαθέσιμες επιλογές για την ρύθμιση της
- συμπεριφοράς και των περιορισμών ασφαλείας που υλοποιούνται από την
- εγκατάσταση ενός jail.</para>
- </listitem>
-
- <listitem>
- <para>Μερικές εφαρμογές υψηλού επιπέδου για τη διαχείριση jails,
- οι οποίες είναι διαθέσιμες μέσω της συλλογής των Ports του &os; και
- μπορούν να χρησιμοποιηθούν στην υλοποίηση ολοκληρωμένων λύσεων με
- τη χρήση jails.</para>
- </listitem>
- </itemizedlist>
-
- <sect2 xml: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>
- προκειμένου να προσθέσει ή να αφαιρέσει περιορισμούς οι οποίοι
- υπάρχουν αρχικά στον χρήστη <systemitem class="username">root</systemitem>. Υπάρχουν όμως
- και κάποιοι περιορισμοί οι οποίοι δεν μπορούν να αφαιρεθούν.
- Ο χρήστης <systemitem class="username">root</systemitem> δεν επιτρέπεται να προσαρτά ή να
- απο-προσαρτά συστήματα αρχείων μέσα από ένα &man.jail.8;. Ο
- <systemitem class="username">root</systemitem> μέσα σε ένα 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. Κάτι τέτοιο είναι ιδιαίτερα χρήσιμο
- όταν ο χρήστης <systemitem class="username">root</systemitem> επιθυμεί να τερματίσει
- με ασφάλεια κάποιο jail. Μπορεί επίσης να χρησιμοποιηθεί η εντολή
- &man.jexec.8; για την εκτέλεση κάποιου shell μέσα στο jail
- προκειμένου να εκτελεστούν εργασίες διαχείρισης, για
- παράδειγμα:</para>
-
- <screen>&prompt.root; <userinput>jexec 1 tcsh</userinput></screen>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="jails-tuning-admintools">
- <title>Εργαλεία Διαχείρισης Υψηλού Επιπέδου στη Συλλογή Ports
- του &os;</title>
-
- <para>Ανάμεσα στις διάφορες εφαρμογές τρίτων κατασκευαστών για τη
- διαχείριση των jails, ένα από τα ποιο ολοκληρωμένα και χρήσιμα πακέτα
- είναι το <package>sysutils/jailutils</package>.
- Αποτελεί ένα σύνολο μικρών εφαρμογών
- οι οποίες συνεισφέρουν στη διαχείριση του &man.jail.8;. Για
- περισσότερες πληροφορίες, δείτε στον δικτυακό του τόπο.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="jails-application">
- <title>Εφαρμογή των Jails</title>
-
- <sect2 xml:id="jails-service-jails">
- <info><title>Service Jails</title>
- <authorgroup>
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Η ενότητα αυτή είναι βασισμένη στην ιδέα που παρουσιάστηκε αρχικά
- από τον &a.simon; στο <uri xlink:href="http://simon.nitro.dk/service-jails.html">http://simon.nitro.dk/service-jails.html</uri>, καθώς και
- σε ένα ανανεωμένο άρθρο του Ken Tom <email>locals@gmail.com</email>.
- Στην ενότητα αυτή θα σας δείξουμε πως να στήσετε ένα σύστημα &os; το
- οποίο να διαθέτει ένα επιπλέον επίπεδο ασφάλειας, με τη χρήση του
- &man.jail.8;. Υποθέτουμε ότι το σύστημα τρέχει τουλάχιστον RELENG_6_0
- και ότι έχετε κατανοήσει όλες τις προηγούμενες πληροφορίες του
- κεφαλαίου.</para>
-
- <sect3 xml:id="jails-service-jails-design">
- <title>Σχεδιασμός</title>
-
- <para>Ένα από τα σημαντικότερα προβλήματα με τα jails είναι η
- διαχείριση της διαδικασίας αναβαθμίσεων. Αυτό τείνει να είναι
- πρόβλημα διότι το κάθε jail πρέπει να δημιουργηθεί από την αρχή σε
- κάθε αναβάθμιση. Συνήθως δεν είναι πρόβλημα αν έχετε ένα μόνο jail,
- μια και πρόκειται για σχετικά απλή διαδικασία, αλλά γίνεται
- κουραστική και χρονοβόρα αν έχετε πολλά jails.</para>
-
- <warning>
- <para>Οι παρακάτω ρυθμίσεις προϋποθέτουν εμπειρία με το &os; και τη
- χρήση των διάφορων χαρακτηριστικών του. Εάν τα παρακάτω βήματα
- σας φαίνονται πολύ περίπλοκα, είναι καλύτερα να ρίξετε μια ματιά
- σε κάτι ποιο απλό όπως το
- <package>sysutils/ezjail</package>, το οποίο
- παρέχει έναν ευκολότερο τρόπο διαχείρισης των 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>/home/j</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Το <filename>/home/j/mroot</filename>
- είναι το template για το κάθε jail και η κατάτμηση μόνο
- ανάγνωσης για όλα τα jails.</para>
- </listitem>
-
- <listitem>
- <para>Θα δημιουργηθεί ένας κενός κατάλογος για κάθε jail κάτω
- από τον κατάλογο
- <filename>/home/j</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Κάθε jail θα έχει έναν κατάλογο
- <filename>/s</filename>, ο οποίος θα είναι
- σύνδεσμος προς το εγγράψιμο μέρος του συστήματος.</para>
- </listitem>
-
- <listitem>
- <para>Κάθε jail θα έχει το δικό εγγράψιμο μέρος το οποίο
- θα βασίζεται στο
- <filename>/home/j/skel</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Κάθε jailspace (το εγγράψιμο μέρος κάθε jail) θα πρέπει
- να δημιουργηθεί στον κατάλογο
- <filename>/home/js</filename>.</para>
- </listitem>
- </itemizedlist>
-
- <note>
- <para>Όλα αυτά προϋποθέτουν ότι τα jails βρίσκονται κάτω από τον
- κατάλογο <filename>/home</filename>. Αυτό
- βέβαια μπορεί να αλλάξει σε οτιδήποτε εσείς θέλετε, αλλά θα
- επηρεάσει όλα τα παρακάτω παραδείγματα.</para>
- </note>
- <!-- Insert an image or drawing here to illustrate the example. -->
- </sect3>
-
- <sect3 xml:id="jails-service-jails-template">
- <title>Δημιουργώντας το Template</title>
-
- <para>Η ενότητα αυτή θα περιγράψει τα βήματα που χρειάζονται
- προκειμένου να δημιουργήσετε το πρωταρχικό template το οποίο θα
- περιέχει το τμήμα των jails που είναι μόνο για ανάγνωση.</para>
-
- <para>Είναι πάντοτε καλή ιδέα να αναβαθμίζετε το &os; στη τελευταία
- έκδοση -RELEASE. Για το σκοπό αυτό, διαβάστε το αντίστοιχο
- <link xlink:href="&url.books.handbook;/makeworld.html">κεφάλαιο</link>
- στο Εγχειρίδιο. Στη περίπτωση που η αναβάθμιση
- δεν είναι εφικτή, θα χρειαστείτε buildworld για να μπορέσετε να
- συνεχίσετε. Επιπλέον θα χρειαστείτε το πακέτο
- <package>sysutils/cpdup</package>. Θα
- χρησιμοποιήσουμε το βοηθητικό πρόγραμμα &man.portsnap.8; για να
- κατεβάσουμε τη συλλογή των Ports. Για τους νεο-εισερχόμενους,
- συνίσταται η ανάγνωση του <link xlink:href="&url.books.handbook;/portsnap.html">κεφαλαίου για το
- Portsnap</link> στο Εγχειρίδιο του &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>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 xml: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>/usr/home</filename>
- αντί για το <filename>/home</filename>
- είναι ότι η φυσική διαδρομή για τον κατάλογο
- <filename>/home </filename> σε μια τυπική
- εγκατάσταση του &os; είναι το
- <filename>/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.
- Προσέξτε εδώ τη χρήση του
- <package>sysutils/cpdup</package>, το οποίο
- επιβεβαιώνει ότι δημιουργείται το σωστό αντίγραφο του κάθε
- καταλόγου:</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 xml:id="jails-service-jails-upgrading">
- <title>Αναβάθμιση</title>
-
- <para>Κάποια στιγμή, θα χρειαστεί να αναβαθμίσετε το σύστημά σας σε
- μια νέα έκδοση του &os;, είτε για λόγους ασφάλειας, είτε γιατί
- υπάρχουν νέες δυνατότητες στην νεώτερη έκδοση οι οποίες είναι
- χρήσιμες για τα jails που ήδη έχετε. Ο τρόπος που χρησιμοποιήσαμε
- για την δημιουργία των jails, επιτρέπει την εύκολη αναβάθμιση τους.
- Επιπλέον, ελαχιστοποιεί το χρόνο διακοπής της λειτουργίας τους, μια
- και θα χρειαστεί να τα σταματήσετε μόνο κατά τα λίγα τελευταία
- λεπτά. Επίσης, παρέχει έναν τρόπο να επιστρέψετε σε παλαιότερες
- εκδόσεις εάν προκύψουν οποιαδήποτε σφάλματα.</para>
-
- <procedure>
- <step>
- <para>Το πρώτο βήμα είναι να αναβαθμίσετε το σύστημα στο οποίο
- φιλοξενούνται τα jails, με το συνήθη τρόπο. Στη συνέχεια
- δημιουργήστε ένα νέο προσωρινό template κατάλογο, μόνο για
- ανάγνωση, στο
- <filename>/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>Το <buildtarget>installworld</buildtarget> δημιουργεί
- μερικούς καταλόγους που δε χρειάζονται, και θα πρέπει
- να διαγραφούν:</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>/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>
diff --git a/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.xml b/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.xml
deleted file mode 100644
index 091152bada..0000000000
--- a/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.xml
+++ /dev/null
@@ -1,1613 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ρυθμίζοντας τον Πυρήνα του FreeBSD
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/kernelconfig/chapter.xml
- %SRCID% 39097
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="kernelconfig">
- <info><title>Ρυθμίζοντας τον Πυρήνα του &os;</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Ανανεώθηκε και αναδομήθηκε από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Jake</firstname><surname>Hamby</surname></personname><contrib>Αρχική συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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>Όλες οι εντολές που εμφανίζονται σε αυτό το κεφάλαιο ως παραδείγματα
- πρέπει να εκτελεστούν ως <systemitem class="username">root</systemitem> για να είναι
- επιτυχείς.</para>
- </sect1>
-
- <sect1 xml: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 xml:id="kernelconfig-devices">
- <info><title>Ανακαλύπτοντας τις Συσκευές του Συστήματος σας</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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, η οποία δείχνει το υποστηριζόμενο υλικό. Κατά
- τη διάρκεια της εκκίνησης, εμφανίζεται μια λίστα με τις συσκευές που
- ανιχνεύθηκαν. Για παράδειγμα, οι παρακάτω γραμμές δείχνουν ότι το
- πρόγραμμα οδήγησης <filename>psm</filename> εντόπισε ένα
- ποντίκι:</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 -lv</command>, δείχνει ότι το
- πρόγραμμα οδήγησης <filename>ath</filename> εντόπισε μια συσκευή
- ασύρματου Ethernet. Μπορείτε να δείτε την αντίστοιχη σελίδα manual
- του προγράμματος &man.ath.4;, χρησιμοποιώντας την εντολή
- <command>man ath</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 xml:id="kernelconfig-modules">
- <title>Προγράμματα Οδήγησης, Υποσυστήματα και Αρθρώματα (modules)</title>
- <indexterm>
- <primary>kernel</primary>
- <secondary>drivers / modules / subsystems</secondary>
- </indexterm>
-
- <para>Πριν δημιουργήσετε ένα προσαρμοσμένο πυρήνα, θα πρέπει πρώτα να
- σκεφτείτε για ποιους λόγους τον χρειάζεστε. Σε πολλές περιπτώσεις,
- η υποστήριξη κάποιας συγκεκριμένης συσκευής μπορεί να επιτευχθεί με την
- χρήση κάποιου αρθρώματος (module).</para>
-
- <para>Τα αρθρώματα του πυρήνα βρίσκονται στον κατάλογο
- <filename>/boot/kernel/</filename> και μπορούν να
- φορτωθούν δυναμικά στον πυρήνα που εκτελείται τη δεδομένη στιγμή, με
- τη χρήση της εντολής &man.kldload.8;. Τα περισσότερα, αν και όχι όλα,
- τα προγράμματα οδήγησης στον πυρήνα, διατίθενται και σε μορφή
- αρθρώματος· έχουν επίσης τη δική του σελίδα βοήθειας το καθένα. Για
- παράδειγμα, στην προηγούμενη ενότητα, είδαμε το πρόγραμμα οδήγησης
- ασύρματου Ethernet <filename>ath</filename>. Η σελίδα βοήθειας
- για αυτή τη συσκευή αναφέρει:</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 xml: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>arch/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>Αν δεν υπάρχει ο κατάλογος
- <filename>/usr/src/</filename> στο σύστημα σας
- (ή αν είναι άδειος), τότε δεν έχετε
- εγκαταστήσει τον πηγαίο κώδικα. Ο ευκολότερος τρόπος για
- να εγκαταστήσετε τον πλήρη πηγαίο κώδικα, είναι να μέσω του
- &man.csup.1; όπως περιγράφεται στο <xref linkend="synching"/>.
- Θα πρέπει επίσης να δημιουργήσετε ένα συμβολικό δεσμό προς
- τον κατάλογο <filename>/usr/src/sys/</filename>:</para>
-
- <screen>&prompt.root; <userinput>ln -s /usr/src/sys /sys</userinput></screen>
- </note>
-
- <para>Έπειτα, μετακινηθείτε στον κατάλογο
- <filename>arch/conf</filename>
- και αντιγράψτε το αρχείο ρυθμίσεων <filename>GENERIC</filename> στο
- όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:
- </para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
-
- <para>Κατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία
- γράμματα και αν έχετε πολλά μηχανήματα &os; με διαφορετικό υλικό,
- είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το
- παράδειγμα μας, θα το αποκαλούμε
- <filename>MYKERNEL</filename>.</para>
-
- <tip>
- <para>Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας
- απευθείας στον κατάλογο <filename>/usr/src</filename>. Αν
- αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε
- απλώς τον κατάλογο <filename>/usr/src</filename> και να ξεκινήσετε
- από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα
- συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων
- του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο
- <filename>GENERIC</filename>, καθώς μπορεί οι αλλαγές σας να χαθούν
- την επόμενη φορά που θα
- <link linkend="updating-upgrading">ανανεώσετε τον πηγαίο σας κώδικα</link>.
- </para>
-
- <para>Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο
- και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο
- <filename>i386</filename>.</para>
-
- <para>Για παράδειγμα:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
-&prompt.root; <userinput>mkdir /root/kernels</userinput>
-&prompt.root; <userinput>cp GENERIC /root/kernels/MYKERNEL</userinput>
-&prompt.root; <userinput>ln -s /root/kernels/MYKERNEL</userinput></screen>
- </tip>
-
- <para>Τώρα, τροποποιήστε το αρχείο
- <filename>MYKERNEL</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>/usr/src</filename>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
- </step>
-
- <step>
- <para>Μεταγλωττίστε τον πυρήνα:</para>
-
- <screen>&prompt.root; <userinput>make buildkernel KERNCONF=MYKERNEL</userinput></screen>
- </step>
-
- <step>
- <para>Εγκαταστήστε το νέο πυρήνα:</para>
-
- <screen>&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</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>/boot/kernel.old</filename></primary>
- </indexterm>
-
- <para>Ο νέος πυρήνας θα αντιγραφεί στον κατάλογο
- <filename>/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>/boot/kernel</filename>, αν και οι χρήστες
- θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε
- συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για
- εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια
- ή εσφαλμένη λειτουργία του συστήματος σας.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="kernelconfig-config">
- <info><title>Το Αρχείο Ρυθμίσεων</title>
- <authorgroup>
- <author><personname><firstname>Joel</firstname><surname>Dahl</surname></personname><contrib>Ανανεώθηκε για το &os; </contrib></author>
- </authorgroup>
- </info>
-
- <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 xml: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>Για να δημιουργήσετε ένα αρχείο το οποίο να περιέχει όλες τις
- διαθέσιμες επιλογές, όπως γίνεται συνήθως για δοκιμές, εκτελέστε την
- ακόλουθη εντολή ως <systemitem class="username">root</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/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/i386/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 όπως περιγράψαμε παραπάνω.
- Επίσης, το εξαιρετικό πρόγραμμα
- <package>emulators/mtools</package> σας επιτρέπει να
- έχετε πρόσβαση σε δισκέτες 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>Προσθέτει υποστήριξη για <link xlink:href="http://en.wikipedia.org/wiki/GUID_Partition_Table">Πίνακα
- Κατατμήσεων GUID</link>. Το GPT δίνει δυνατότητα ύπαρξης μεγάλου
- αριθμού κατατμήσεων στο δίσκο, μέχρι 128 με τις τυπικές
- ρυθμίσεις.</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 xml: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; ως θύρες <filename>COM</filename>.</para>
-
- <note>
- <para>Αν έχετε εσωτερικό μόντεμ στη θύρα <filename>COM4</filename>
- και έχετε και σειριακή θύρα <filename>COM2</filename>, θα πρέπει
- να αλλάξετε το IRQ του μόντεμ στο 2 (για περίεργους τεχνικούς λόγους,
- IRQ2 = IRQ 9) για να μπορέσετε να το χρησιμοποιήσετε από το &os;. Αν
- έχετε κάρτα πολλαπλών σειριακών εξόδων, ελέγξτε τη σελίδα manual του
- &man.sio.4; για περισσότερες πληροφορίες σχετικά με τις σωστές τιμές
- που πρέπει να προσθέσετε στο <filename>/boot/device.hints</filename>.
- Κάποιες κάρτες γραφικών (ειδικά αυτές που βασίζονται σε ολοκληρωμένα
- S3) χρησιμοποιούν διευθύνσεις IO μορφής <literal>0x*2e8</literal>,
- και καθώς πολλές φτηνές σειριακές κάρτες δεν αποκωδικοποιούν πλήρως
- τη 16 bit περιοχή διευθύνσεων, συγκρούονται με τις κάρτες αυτές,
- καθιστώντας έτσι πρακτικά άχρηστη τη θύρα
- <filename>COM4</filename>.</para>
-
- <para>Κάθε σειριακή πόρτα χρειάζεται να έχει μια μοναδική IRQ (εκτός
- αν χρησιμοποιείτε κάρτα πολλαπλών σειριακών που υποστηρίζει
- κοινή χρήση interrupts), και έτσι δεν μπορούν να χρησιμοποιηθούν τα
- προεπιλεγμένα interrupts για την <filename>COM3</filename> και την
- <filename>COM4</filename>.</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/i386/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 στο <systemitem>localhost</systemitem>
- (γνωστό επίσης και ως <systemitem class="ipaddress">127.0.0.1</systemitem>)
- πραγματοποιείται μέσω αυτής της συσκευής. Η ύπαρξη αυτής της συσκευής
- είναι <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 xml: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/i386/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 xml: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 xml:id="kernelconfig-noboot"/></term>
-
- <listitem>
- <para>Αν ο νέος σας πυρήνας δεν εκκινεί ή αποτυγχάνει να αναγνωρίσει
- τις συσκευές σας, μην πανικοβάλλεστε! Ευτυχώς, το &os; έχει ένα
- εξαιρετικό μηχανισμό για να επανέλθετε από μη-συμβατούς πυρήνες.
- Απλώς επιλέξτε τον πυρήνα από τον οποίο θέλετε να ξεκινήσετε μέσω
- του συστήματος εκκίνησης (boot loader) του &os;. Έχετε πρόσβαση
- σε αυτό, την ώρα που εμφανίζεται το μενού επιλογών εκκίνησης.
- Επιλέξτε <quote>Escape to a loader prompt</quote>, αριθμός έξι.
- Στην προτροπή που εμφανίζεται, γράψτε την εντολή
- <command>boot kernel.old</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>/boot/kernel</filename>, διαφορετικά
- εντολές όπως η &man.ps.1; ίσως να μη λειτουργούν σωστά. Για να
- το κάνετε αυτό, απλώς μετονομάστε τον κατάλογο που περιέχει τον
- καλό πυρήνα, π.χ:</para>
-
- <screen>&prompt.root; <userinput>mv /boot/kernel /boot/kernel.bad</userinput>
-&prompt.root; <userinput>mv /boot/kernel.good /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>
diff --git a/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml b/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml
deleted file mode 100644
index a80069c5c4..0000000000
--- a/el_GR.ISO8859-7/books/handbook/l10n/chapter.xml
+++ /dev/null
@@ -1,1006 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Τοπικές Ρυθμίσεις - Χρήση και Ρύθμιση I18N/L10N
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/l10n/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="l10n">
- <info><title>Τοπικές Ρυθμίσεις - Χρήση και ρύθμιση I18N/L10N</title>
- <authorgroup>
- <author><personname><firstname>Andrey</firstname><surname>Chernov</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Michael C.</firstname><surname>Wu</surname></personname><contrib>Γράφηκε ξανά από τον </contrib></author>
- <!-- 30 Nv 2000 -->
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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 xml: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, η <link xlink:href="&url.base;/ports/index.html">Συλλογή των Ports
- του &os;</link> διαθέτει προγράμματα για κάθε γλώσσα. Δείτε την
- τεκμηρίωση για το 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>Μπορείτε να δείτε την ενεργή λίστα των σετ χαρακτήρων στο
- <link xlink:href="http://www.iana.org/assignments/character-sets">Μητρώο
- IANA</link>.</para>
-
- <note>
- <para>Το &os; χρησιμοποιεί για τις τοπικές ρυθμίσεις κωδικοποιήσεις
- συμβατές με το X11.</para>
- </note>
- </sect2>
-
- <sect2>
- <title>Εφαρμογές I18N</title>
-
- <para>Στο σύστημα πακέτων και ports του &os;, οι εφαρμογές που
- σχετίζονται με το I18N έχουν στο όνομα τους τη λέξη
- <literal>I18N</literal> ώστε να αναγνωρίζονται εύκολα. Ωστόσο, μπορεί
- να μην υποστηρίζουν πάντοτε τη γλώσσα που χρειάζεστε.</para>
- </sect2>
-
- <sect2 xml: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>
- <listitem>
- <para>Την <envar>LANG</envar> για λειτουργίες που ανήκουν στην
- οικογένεια &posix;<indexterm><primary>POSIX</primary></indexterm> &man.setlocale.3;</para>
- </listitem>
-
- <listitem>
- <para>Την <envar>MM_CHARSET</envar> για το σύνολο χαρακτήρων MIME<indexterm><primary>MIME</primary></indexterm>
- των εφαρμογών.</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 xml:id="login-class">
- <title>Μέθοδος Κλάσεων Εισόδου (Login Class)</title>
-
- <para>Η μέθοδος αυτή επιτρέπει να γίνει η ρύθμιση των μεταβλητών
- περιβάλλοντος μια φορά για κάθε κέλυφος, αντί να χρειάζεται να
- τεθούν συγκεκριμένες τιμές στο αρχείο εκκίνησης του καθενός
- χωριστά. Οι <link linkend="usr-setup">Ρυθμίσεις σε Επίπεδο
- Χρήστη</link> μπορούν να γίνουν από τον ίδιο το χρήστη, ενώ οι
- <link linkend="adm-setup">Ρυθμίσεις σε Επίπεδο Διαχειριστή</link>
- απαιτούν προνόμια υπερχρήστη.</para>
-
- <sect5 xml: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 xml: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 =
- language</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 language</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 user_name -L language</userinput></screen>
- </sect5>
- </sect4>
-
- <sect4 xml: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 xml: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/language</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><package>chinese/big5con</package></entry>
- </row>
-
- <row>
- <entry>Γιαπωνέζικα</entry>
- <entry><package>japanese/kon2-16dot</package>
- ή
- <package>japanese/mule-freewnn</package></entry>
- </row>
-
- <row>
- <entry>Κορεάτικα</entry>
- <entry><package>korean/han</package></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2>
- <title>Ρύθμιση του X11</title>
-
- <para>Αν και το X11 δεν είναι μέρος του &os;&nbsp;Project, θα δώσουμε
- εδώ κάποιες χρήσιμες πληροφορίες για όσους το χρησιμοποιούν στο &os;.
- Για περισσότερες πληροφορίες, δείτε την <link xlink:href="http://www.x.org/">δικτυακή τοποθεσία του &xorg;</link>,
- ή του εξυπηρετητή X11 που πρόκειται να χρησιμοποιήσετε.</para>
-
- <para>Στο αρχείο <filename>~/.Xresources</filename>, μπορείτε
- επιπρόσθετα να αλλάξετε και άλλες ρυθμίσεις που σχετίζονται με το
- I18N (π.χ. γραμματοσειρές, μενού, κ.λ.π.).</para>
-
- <sect3>
- <title>Απεικόνιση Γραμματοσειρών</title>
-
- <indexterm><primary>X11 True Type font server</primary></indexterm>
- <para>Εγκαταστήστε τον εξυπηρετητή <application>&xorg;</application>
- (<package>x11-servers/xorg-server</package>)
- και έπειτα εγκαταστήστε τις γραμματοσειρές &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 xml: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 xml:id="lang-setup">
- <title>Τοπικές Ρυθμίσεις για Συγκεκριμένες Γλώσσες</title>
-
- <sect2 xml:id="ru-localize">
- <info><title>Ρώσικη Γλώσσα (Κωδικοποίηση KOI8-R)</title>
- <authorgroup>
- <author><personname><firstname>Andrey</firstname><surname>Chernov</surname></personname><contrib>Αρχική συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
- <indexterm>
- <primary>localization</primary>
- <secondary>Russian</secondary>
- </indexterm>
-
- <para>Για περισσότερες πληροφορίες σχετικά με την κωδικοποίηση KOI8-R,
- δείτε τις <link xlink:href="http://koi8.pp.ru/">Αναφορές Σχετικά με το Σετ
- Χαρακτήρων KOIR-8 (Ρωσικό Σύνολο Χαρακτήρων)</link>.</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>, εγκαταστήστε το πακέτο
- <package>x11-fonts/xorg-fonts-cyrillic</package>.</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>Δείτε το <link xlink:href="http://koi8.pp.ru/xwin.html">KOI8-R για
- το σύστημα X Window</link> για περισσότερες οδηγίες σχετικά με
- την δημιουργία εφαρμογών X11 που να χρησιμοποιούν τοπικές
- ρυθμίσεις.</para>
- </note>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Τοπικές Ρυθμίσεις για Παραδοσιακά Κινέζικα Ταϊβάν</title>
- <indexterm>
- <primary>localization</primary>
- <secondary>Traditional Chinese</secondary>
- </indexterm>
-
- <para>Το &os;-Taiwan&nbsp;Project έχει δημιουργήσει ένα HOWTO για τα
- Κινέζικα στο &os;, το οποίο μπορείτε να βρείτε στη διεύθυνση
- <uri xlink:href="http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/">http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/</uri>,
- χρησιμοποιώντας πολλά Κινέζικα 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>
- έχει δημιουργήσει την <link xlink:href="http://netlab.cse.yzu.edu.tw/~statue/cfc/">Κινέζικη Συλλογή
- &os; (CFC)</link> χρησιμοποιώντας την κωδικοποίηση
- <literal>zh-L10N-tut</literal> του &os;-Ταΐβάν. Τα πακέτα και τα
- scripts διατίθενται στη διεύθυνση <uri xlink:href="ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/">ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/</uri>.</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;. Ο οδηγός
- είναι γραμμένος στα Γερμανικά και διατίθεται στην τοποθεσία
- <uri xlink:href="http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html">http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html</uri>.</para>
- </sect2>
-
- <sect2>
- <title>Τοπικές Ρυθμίσεις για την Ελληνική Γλώσσα</title>
-
- <indexterm>
- <primary>localization</primary>
- <secondary>Greek</secondary>
- </indexterm>
- <para>Ο &a.el.kokkalis; έχει γράψει ένα πλήρες άρθρο για την υποστήριξη
- της Ελληνικής γλώσσας στο &os;. Το άρθρο αυτό διατίθεται ως μέρος της
- επίσημης Ελληνικής τεκμηρίωσης του &os;, στην τοποθεσία <link xlink:href="&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</link>.</para>
- </sect2>
-
- <sect2>
- <title>Τοπικές Ρυθμίσεις Για Γιαπωνέζικα και Κορεάτικα</title>
- <indexterm>
- <primary>localization</primary>
- <secondary>Japanese</secondary>
- </indexterm>
- <indexterm>
- <primary>localization</primary>
- <secondary>Korean</secondary>
- </indexterm>
- <para>Για Γιαπωνέζικα, δείτε στην τοποθεσία
- <uri xlink:href="http://www.jp.FreeBSD.org/">http://www.jp.FreeBSD.org/</uri>,
- ενώ για Κορεάτικα, δείτε στην τοποθεσία
- <uri xlink:href="http://www.kr.FreeBSD.org/">http://www.kr.FreeBSD.org/</uri>.</para>
- </sect2>
-
- <sect2>
- <title>Τεκμηρίωση του &os; σε Γλώσσες Εκτός της Αγγλικής</title>
-
- <para>Κάποιοι εθελοντές του &os; έχουν μεταφράσει τμήματα της
- τεκμηρίωσης του σε άλλες γλώσσες. Οι μεταφράσεις αυτές διατίθενται
- μέσω συνδέσμων στην <link xlink:href="&url.base;/index.html">κύρια δικτυακή
- τοποθεσία του &os;</link> ή στον κατάλογο
- <filename>/usr/share/doc</filename>.</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml
deleted file mode 100644
index 945976592b..0000000000
--- a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.xml
+++ /dev/null
@@ -1,1415 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Συμβατότητα με Εκτελέσιμα του Linux
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="linuxemu">
- <info><title>Συμβατότητα με Εκτελέσιμα του Linux</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Αναδομήθηκε και μέρη του ανανεώθηκαν από τον </contrib></author>
- <!-- 22 Mar 2000 -->
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Brian N.</firstname><surname>Handy</surname></personname><contrib>Αρχική συνεισφορά από τον </contrib></author>
- <author><personname><firstname>Rich</firstname><surname>Murphey</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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>&realplayer;</application>,
- <application>&oracle;</application>,
- <application>&wordperfect;</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 xml: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>). Μπορείτε να φορτώσετε αυτό το άρθρωμα στον
- πυρήνα δίνοντας τη παρακάτω εντολή ως <systemitem class="username">root</systemitem>:</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 xml:id="linuxemu-libs-port">
- <title>Εγκατάσταση μέσω του linux_base Port</title>
- <indexterm><primary>Ports Collection</primary></indexterm>
-
- <para>Αυτός είναι κατά γενική ομολογία ο ευκολότερος τρόπος για την
- εγκατάσταση των runtime libraries. Είναι η ίδια διαδικασία
- εγκατάστασης που ακολουθείται και για οποιοδήποτε άλλο port από
- τη <link linkend="ports">Συλλογή των Ports</link>. Απλά κάντε το
- παρακάτω:</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 <package>emulators/linux_base-fc4</package>
- αντί για το <package>emulators/linux_base-f10</package>.</para>
- </note>
-
- <para>Θα πρέπει τώρα να έχετε κανονική συμβατότητα με εκτελέσιμα του
- Linux. Μερικά προγράμματα παραπονιούνται ότι οι βιβλιοθήκες
- συστήματος (system libraries) δεν είναι στη τελευταία τους έκδοση.
- Γενικά όμως, αυτό δεν αποτελεί κανένα πρόβλημα.</para>
-
- <note><para>Μπορούν να υπάρχουν πολλαπλές εκδόσεις
- του <package>emulators/linux_base</package>, που να
- αντιστοιχούν στις διαφορετικές εκδόσεις των διανομών Linux. Θα
- πρέπει να κάνετε εγκατάσταση των ports που προαπαιτούνται από τις
- εφαρμογές Linux τις οποίες θέλετε να εγκαταστήσετε.</para></note>
-
- </sect3>
-
- <sect3 xml: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 επιλογές (για να
- ακολουθήσετε τις παρακάτω οδηγίες θα πρέπει να είστε
- <systemitem class="username">root</systemitem> στο σύστημά σας).</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 xml:id="linuxemu-mathematica">
- <info><title>Εγκαθιστώντας το &mathematica;</title>
- <authorgroup>
- <author><personname><firstname>Boris</firstname><surname>Hollas</surname></personname><contrib>Ανανεώθηκε για το Mathematica 5.X από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 στο <uri xlink:href="http://www.wolfram.com/">http://www.wolfram.com/</uri>.</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>/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 xml:id="linuxemu-maple">
- <info><title>Εγκαθιστώντας το &maple;</title>
- <authorgroup>
- <author><personname><firstname>Aaron</firstname><surname>Kaplan</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Robert</firstname><surname>Getschmann</surname></personname><contrib>Ευχαριστίες στον </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm>
- <primary>applications</primary>
- <secondary><application>Maple</application></secondary>
- </indexterm>
-
- <para>Το <application>&maple;</application> είναι μία εμπορική εφαρμογή
- μαθηματικών παρόμοια με το <application>&mathematica;</application>. Θα
- πρέπει να αγοράσετε το λογισμικό από
- το <uri xlink:href="http://www.maplesoft.com/">http://www.maplesoft.com/</uri> και στη συνέχεια να
- κάνετε αίτηση για μια άδεια χρήσης. Για να εγκαταστήσετε το λογισμικό
- στο &os;, ακολουθήστε τα παρακάτω απλά βήματα.
- </para>
-
- <procedure>
- <step>
- <para>Εκτελέστε το <filename>INSTALL</filename> shell script από το
- μέσο εγκατάστασης που έχετε. Επιλέξτε <quote>RedHat</quote> όταν
- ερωτηθείτε από το πρόγραμμα εγκατάστασης. Ο τυπικός κατάλογος
- είναι ο <filename>/usr/local/maple</filename>.
- </para>
- </step>
-
- <step>
- <para>Αν δεν έχετε αγοράσει ακόμη κάποια άδεια για
- το <application>&maple;</application>, αγοράστε μία από το
- Maple Waterloo Software
- (<uri xlink:href="http://register.maplesoft.com/">http://register.maplesoft.com/</uri>) και
- αντιγράψτε το αρχείο που θα σας δοθεί
- στο <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;&amp;2
- echo -n " lmgrd"
- ;;
-stop)
- lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&amp;2
- ;;
-*)
- echo "Usage: `basename $0` {start|stop}" 1&gt;&amp;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. Επιπλέον
- τεκμηρίωση μπορείτε να βρείτε
- στο <uri xlink:href="http://www.globetrotter.com/">http://www.globetrotter.com/</uri>.
- </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'. Το <systemitem>chillig</systemitem> είναι το όνομα του
- συστήματος.</para>
- </note>
-
- <para>Μπορείτε να τροποποιήσετε το αρχείο της άδειας χρήσης, αρκεί
- να μην αλλάξετε την γραμμή <quote>FEATURE</quote> (η οποία
- προστατεύεται από το κλειδί της άδειας).</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="linuxemu-matlab">
- <info><title>Εγκαθιστώντας το &matlab;</title>
- <authorgroup>
- <author><personname><firstname>Dan</firstname><surname>Pelleg</surname></personname><contrib>Συνεισφορά του </contrib></author>
- <!-- daniel+handbook@pelleg.org -->
- </authorgroup>
- </info>
-
-
- <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
- στο <uri xlink:href="http://www.mathworks.com">http://www.mathworks.com</uri>. Σιγουρευτείτε ότι
- πήρατε και το αρχείο που περιέχει την άδεια χρήσης ή οδηγίες για το πως
- να το δημιουργήσετε. Μια και θα επικοινωνήσετε με την εταιρεία, πείτε
- τους ότι θα θέλατε να υπάρχει επίσης υποστήριξη για το &os;.
- </para>
-
- <sect2>
- <title>Εγκατάσταση του &matlab;</title>
-
- <para>Για να εγκαταστήσετε το <application>&matlab;</application>, κάντε
- τα παρακάτω:</para>
-
- <procedure>
- <step>
- <para>Εισάγετε το CD και προσαρτήστε το στο σύστημα σας. Συνδεθείτε
- ως χρήστης <systemitem class="username">root</systemitem>, όπως συνιστά το script της
- εγκατάστασης. Για να ξεκινήσετε το script της εγκατάστασης δώστε
- την εντολή:</para>
-
- <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
-
- <tip>
- <para>Το πρόγραμμα της εγκατάστασης είναι σε γραφικό
- περιβάλλον. Αν λαμβάνετε σφάλματα σχετικά με την οθόνη, δώστε
- την εντολή: <command>setenv HOME ~USER</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> με ένα υπαρκτό όνομα
- χρήστη του συστήματος σας (και να μην είναι ο
- <systemitem class="username">root</systemitem>).</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 xml: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>Ανάλογα με την έκδοση του
- <package>emulators/linux_base</package>, που έχετε,
- μπορεί να εμφανιστούν μερικά σφάλματα όταν τρέξετε το
- 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) &amp;
-exit 0</programlisting>
- </step>
-
- <step>
- <para>Κάντε το αρχείο εκτελέσιμο:</para>
-
- <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
- </step>
- </procedure>
- </sect2>
-
- <sect2 xml:id="matlab-using">
- <title>Χρησιμοποιώντας το &matlab;</title>
-
- <para>Σε αυτό το σημείο θα πρέπει να είστε έτοιμοι να δώσετε την
- εντολή <command>matlab</command> και να αρχίσετε να χρησιμοποιείτε την
- εφαρμογή.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="linuxemu-oracle">
- <info><title>Εγκατάσταση της &oracle;</title>
- <authorgroup>
- <author><personname><firstname>Marcel</firstname><surname>Moolenaar</surname></personname><contrib>Συνεισφορά του </contrib></author>
- <!-- marcel@cup.hp.com -->
- </authorgroup>
- </info>
-
-
- <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>Σιγουρευτείτε ότι έχετε εγκαταστήσει
- τα <package>emulators/linux_base</package>
- και <package>devel/linux_devtools</package> από τη
- συλλογή των Ports. Αν αντιμετωπίζετε δυσκολίες με τα παραπάνω, ίσως
- χρειαστεί να τα εγκαταστήσετε από πακέτα ή από παλιότερες εκδόσεις της
- συλλογής των Ports.</para>
-
- <para>Αν θέλετε να τρέξετε τον intelligent agent, θα χρειαστεί να
- εγκαταστήσετε και το πακέτο Red Hat
- Tcl: <filename>tcl-8.0.3-20.i386.rpm</filename>. Η εντολή για την
- εγκατάσταση μέσω του επίσημου <application>RPM</application> port
- (<package>archivers/rpm</package>) είναι:</para>
-
- <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package</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 xml: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 xml:id="linuxemu-oracle-account">
-
- <title>Ο Χρήστης &oracle;</title>
-
- <para>Δημιουργήστε ένα χρήστη συστήματος με
- όνομα <systemitem class="username">oracle</systemitem>, με τον ίδιο τρόπο που θα
- δημιουργούσατε και οποιονδήποτε άλλον χρήστη. Το μόνο ιδιαίτερο
- χαρακτηριστικό του χρήστη <systemitem class="username">oracle</systemitem> είναι ότι
- χρειάζεται να του δώσετε ένα κέλυφος Linux. Προσθέστε
- το <literal>/compat/linux/bin/bash</literal>
- στο <filename>/etc/shells</filename> και ορίστε το κέλυφος του
- χρήστη <systemitem class="username">oracle</systemitem>
- σε <filename>/compat/linux/bin/bash</filename>.</para>
- </sect3>
-
- <sect3 xml: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>, πριν ξεκινήσετε το πρόγραμμα
- εγκατάστασης. Ο κατάλογος αυτός θα πρέπει να ανήκει
- στον χρήστη <systemitem class="username">oracle</systemitem>. Θα πρέπει τώρα να
- πραγματοποιήσετε την εγκατάσταση
- της <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 xml:id="linuxemu-patch-root">
- <title>Διόρθωση του root.sh</title>
-
- <para>Όταν εγκαθιστάτε την <application>&oracle;</application>,
- κάποιες ενέργειες, οι οποίες χρειάζονται να γίνουν
- ως <systemitem class="username">root</systemitem>, καταγράφονται σε ένα 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 xml: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 xml: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/original-path</filename>, <emphasis>και μόνο</emphasis>
- αν αυτό αποτύχει, θα γίνει αναζήτηση στον κατάλογο
- <filename>/original-path</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>
diff --git a/el_GR.ISO8859-7/books/handbook/mac/chapter.xml b/el_GR.ISO8859-7/books/handbook/mac/chapter.xml
deleted file mode 100644
index c093fc1185..0000000000
--- a/el_GR.ISO8859-7/books/handbook/mac/chapter.xml
+++ /dev/null
@@ -1,2093 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Υποχρεωτικός Έλεγχος Πρόσβασης
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/mac/chapter.xml
- %SRCID% 1.1
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mac">
- <info><title>Υποχρεωτικός Έλεγχος Πρόσβασης</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Γράφτηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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 xml: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 xml: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 <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> user as well. Basic
- control over objects will then be released to the group, but
- <systemitem class="username">root</systemitem> 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 xml: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 xml: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 xml: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=XXX</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 xml: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
- <systemitem class="username">root</systemitem> 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 user1 object uid user2 mode n</userinput>
-&prompt.root; <userinput>ugidfw set 3 subject uid user1 object gid user2 mode n</userinput></screen>
-
- <para>This will block any and all access, including directory
- listings, to <systemitem class="username"><replaceable>user2</replaceable></systemitem>'s home
- directory from the username <systemitem class="username">user1</systemitem>.</para>
-
- <para>In place of <systemitem class="username">user1</systemitem>, 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 <systemitem class="username">root</systemitem> 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 xml: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
- <package>security/aide</package> to automatically
- block network traffic if it finds new or altered files in
- protected directories.</para>
- </sect1>
-
- <sect1 xml: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-<systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem>. 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 <systemitem class="username">root</systemitem> 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 <systemitem class="username">www</systemitem> user) to bind to port 80.
- This can be used to allow the <systemitem class="username">www</systemitem>
- user to run a web server without ever having
- <systemitem class="username">root</systemitem> 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 xml: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 <systemitem class="username">root</systemitem>'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 xml: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>/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>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml: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 xml: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
- <package role="port">net-mngt/nagios-plugins</package>,
- <package role="port">net-mngt/nagios</package>, and
- <package role="port">www/apache13</package> 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 <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem>
- 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 <systemitem class="username">nagios</systemitem> and
- <systemitem class="username">www</systemitem> 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, <systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> user cannot access any of the files
- in the <application>Nagios</application> configuration
- directory. If <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> 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 xml: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>
-
- <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 <systemitem class="username">root</systemitem> 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 xml: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>/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
- <link xlink:href="http://www.TrustedBSD.org">TrustedBSD</link>
- 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 <systemitem class="username">root</systemitem>
- 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,
- <systemitem class="username">joe</systemitem>, has a default label of
- <option>biba/low</option>. The <systemitem class="username">root</systemitem> user,
- who has a label of <option>biba/high</option>, cannot view
- <systemitem class="username">joe</systemitem>'s home directory. This will happen
- regardless if <systemitem class="username">root</systemitem> has used the
- <command>su</command> command to become <systemitem class="username">joe</systemitem>,
- or not. In this scenario, the Biba integrity model will not
- permit <systemitem class="username">root</systemitem> to view objects set at a lower
- integrity level.</para>
- </sect2>
-
- <sect2>
- <title>The <systemitem class="username">root</systemitem> username is broken!</title>
-
- <para>In normal or even single user mode, the
- <systemitem class="username">root</systemitem> 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>
diff --git a/el_GR.ISO8859-7/books/handbook/mail/chapter.xml b/el_GR.ISO8859-7/books/handbook/mail/chapter.xml
deleted file mode 100644
index 185705feb3..0000000000
--- a/el_GR.ISO8859-7/books/handbook/mail/chapter.xml
+++ /dev/null
@@ -1,2324 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ηλεκτρονικό Ταχυδρομείο
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/mail/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mail">
- <info><title>Ηλεκτρονικό Ταχυδρομείο</title>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Lloyd</surname></personname><contrib>Αρχική συνεισφορά από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Γράφτηκε ξανά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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 xml: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 xml: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 xml: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 xml: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 xml: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>
- </listitem>
- </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 xml:id="local">
- <title>Πρόσβαση σε Τοπικές Θυρίδες Ταχυδρομείου</title>
-
- <para>Μπορείτε να έχετε τοπική πρόσβαση στις θυρίδες ταχυδρομείου
- χρησιμοποιώντας απευθείας κάποιο πρόγραμμα αποστολής/λήψης
- (<acronym>MUA</acronym>) στον εξυπηρετητή που είναι αποθηκευμένες.
- Κατάλληλες εφαρμογές για αυτό το σκοπό είναι π.χ. το
- <application>mutt</application> ή το &man.mail.1;.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="mail-host">
- <title>Ο Εξυπηρετητής Mail</title>
- <indexterm><primary>mail host</primary></indexterm>
-
- <para>Εξυπηρετητής mail θεωρείται ο υπολογιστής ο οποίος
- είναι υπεύθυνος για την παράδοση και λήψη mail για τον υπολογιστή
- σας, και ενδεχομένως για το δίκτυο σας.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="sendmail">
- <info><title>Ρύθμιση του <application>sendmail</application></title>
- <authorgroup>
- <author><personname><firstname>Christopher</firstname><surname>Shumway</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <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, τον
- <systemitem>another.source.of.spam</systemitem>. Η επόμενη καταχώρηση κάνει
- δεκτές τις συνδέσεις mail από τον υπολογιστή
- <systemitem class="fqdomainname">okay.cyberspammer.com</systemitem>, το όνομα του
- οποίου προσδιορίζεται ακριβέστερα σε σχέση με τη γραμμή
- <systemitem class="fqdomainname">cyberspammer.com</systemitem> που είδαμε
- παραπάνω. Γραμμές που καθορίζουν ονόματα με μεγαλύτερη ακρίβεια,
- έχουν προτεραιότητα σε σχέση με πιο ανακριβείς. Η τελευταία
- καταχώρηση επιτρέπει την αναμετάδοση (relaying) ηλεκτρονικού
- ταχυδρομείου από υπολογιστές με διευθύνσεις IP που ξεκινάνε με
- <systemitem>128.32</systemitem>. Οι υπολογιστές αυτοί, μπορούν να στείλουν
- 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>Η μορφή του αρχείου είναι απλή. Το όνομα της θυρίδας βρίσκεται
- στην αριστερή πλευρά της άνω-κάτω τελείας, και επεκτείνεται στον
- προορισμό που βρίσκεται στη δεξιά πλευρά. Το πρώτο παράδειγμα,
- ορίζει ότι η θυρίδα του χρήστη <systemitem class="username">root</systemitem> θα
- είναι στην πραγματικότητα η θυρίδα <systemitem class="username">localuser</systemitem>.
- Για την θυρίδα αυτή, γίνεται ξανά αναζήτηση στη βάση δεδομένων των
- παρωνυμιών. Αν δεν βρεθεί άλλο όνομα που να ταιριάζει, το μήνυμα θα
- παραδοθεί στον τοπικό χρήστη <systemitem class="username">localuser</systemitem>. Το
- επόμενο παράδειγμα δείχνει μια λίστα ταχυδρομείου. Τα μηνύματα που
- απευθύνονται στη θυρίδα <systemitem class="username">ftp-bugs</systemitem>, κατευθύνονται
- σε τρεις τοπικές θυρίδες, τις <systemitem class="username">joe</systemitem>,
- <systemitem class="username">eric</systemitem> και <systemitem class="username">paul</systemitem>. Σημειώστε
- ότι είναι δυνατόν να καθοριστεί μια απομακρυσμένη θυρίδα
- χρησιμοποιώντας τη μορφή <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 για τον τομέα
- <systemitem class="fqdomainname">example.com</systemitem> και για τον υπολογιστή
- <systemitem class="fqdomainname">mail.example.com</systemitem>, το αρχείο
- <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>Στο παραπάνω παράδειγμα, έχουμε μια αντιστοίχηση για τον τομέα
- <systemitem class="fqdomainname">example.com</systemitem>. Η επεξεργασία αυτού
- του αρχείου γίνεται από πάνω προς τα κάτω, και σταματάει στην εύρεση
- του πρώτου ονόματος που ταιριάζει. Η πρώτη γραμμή του παραδείγματος,
- αντιστοιχεί το <email>root@example.com</email> στην τοπική θυρίδα
- <systemitem class="username">root</systemitem>. Η επόμενη καταχώρηση αντιστοιχεί το
- <email>postmaster@example.com</email> στη θυρίδα
- <systemitem class="username">postmaster</systemitem> στον υπολογιστή
- <systemitem class="fqdomainname">noc.example.net</systemitem>. Τέλος, αν δεν βρεθεί
- καμιά αντιστοίχηση για τον τομέα
- <systemitem class="fqdomainname">example.com</systemitem>, θα εφαρμοστεί η
- τελευταία αντιστοίχηση, η οποία ταιριάζει με οποιοδήποτε mail σταλθεί
- προς τον τομέα <systemitem class="fqdomainname">example.com</systemitem>.
- Στην περίπτωση αυτή, το μήνυμα θα παραδοθεί στην τοπική θυρίδα
- <systemitem class="username">joe</systemitem>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mail-changingmta">
- <info><title>Αλλάζοντας τον Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (MTA)</title>
- <authorgroup>
- <author><personname><firstname>Andrew</firstname><surname>Boothman</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Gregory</firstname><surname>Neil Shapiro</surname></personname><contrib>Οι πληροφορίες που προέρχονται από e-mails έχουν γραφεί
- από τον </contrib></author>
- </authorgroup>
- </info>
-
- <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 xml: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 xml:id="mail-trouble">
- <title>Αντιμετώπιση Προβλημάτων</title>
- <indexterm>
- <primary>email</primary>
- <secondary>troubleshooting</secondary>
- </indexterm>
-
- <qandaset>
- <qandaentry>
- <question>
- <para>Γιατί πρέπει να χρησιμοποιώ το πλήρες όνομα (FQDN) για
- υπολογιστές που βρίσκονται στον τομέα μου;</para>
- </question>
-
- <answer>
- <para>Το πιο πιθανό είναι να διαπιστώσετε ότι ο υπολογιστής
- βρίσκεται στην πραγματικότητα σε διαφορετικό τομέα. Για
- παράδειγμα, αν βρίσκεστε στο
- <systemitem class="fqdomainname">foo.bar.edu</systemitem> και θέλετε να
- επικοινωνήσετε με ένα υπολογιστή με το όνομα
- <systemitem>mumble</systemitem> στον τομέα <systemitem class="fqdomainname">bar.edu</systemitem>, θα πρέπει να αναφερθείτε
- σε αυτόν με το πλήρες του όνομα, <systemitem class="fqdomainname">mumble.bar.edu</systemitem>, αντί για απλώς
- <systemitem>mumble</systemitem>.</para>
-
- <para>Παραδοσιακά, αυτό επιτρεπόταν από τους DNS resolvers του
- BIND<indexterm><primary>BIND</primary></indexterm>.
- Ωστόσο, η τρέχουσα έκδοση του <application>BIND</application> που
- περιλαμβάνεται στο &os;, δεν παρέχει πλέον συντομεύσεις για
- μη-πλήρη ονόματα τομέων, εκτός για τον τομέα στον οποίο βρίσκεστε.
- Έτσι, ένας υπολογιστής με μη-πλήρες όνομα
- <systemitem>mumble</systemitem> θα πρέπει να βρεθεί ως <systemitem class="fqdomainname">mumble.foo.bar.edu</systemitem>, ή θα γίνει αναζήτηση
- για αυτόν στο ριζικό τομέα.</para>
-
- <para>Η συμπεριφορά αυτή είναι διαφορετική από την προηγούμενη, όπου
- η αναζήτηση συνεχιζόταν και στο <systemitem class="fqdomainname">mumble.bar.edu</systemitem>, και το <systemitem class="fqdomainname">mumble.edu</systemitem>. Ρίξτε μια ματιά στο
- 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>
-
- <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<indexterm><primary>MX record</primary></indexterm>, αλλά το
-μηχάνημα αναμετάδοσης (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> στη διεύθυνση
- <uri xlink:href="http://www.sendmail.org/faq/">http://www.sendmail.org/faq/</uri>, και συνίσταται
- να το διαβάσετε αν θέλετε να <quote>πειράξετε</quote> τις
- ρυθμίσεις του mail σας.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question>
- <para>Πως μπορώ να εκτελέσω εξυπηρετητή mail σε υπολογιστή που
- συνδέεται μέσω επιλογικής σύνδεσης
- PPP<indexterm><primary>PPP</primary></indexterm>;</para>
- </question>
-
- <answer>
- <para>Θέλετε να συνδέσετε ένα &os; μηχάνημα σε ένα τοπικό δίκτυο
- (LAN) στο Internet. Το &os; μηχάνημα θα γίνει πύλη ταχυδρομείου
- για το LAN. Η σύνδεση PPP δεν είναι αποκλειστική.</para>
-
- <para>Υπάρχουν τουλάχιστον δύο τρόποι για να το κάνετε αυτό. Ο ένας
- είναι με τη χρήση UUCP<indexterm><primary>UUCP</primary>
- </indexterm>.</para>
-
- <para>Ένας άλλος τρόπος είναι να βάλετε ένα εξυπηρετητή Internet ο
- οποίος έχει συνεχή σύνδεση, να σας παρέχει υπηρεσία δευτερεύοντος
- MX για τον τομέα σας. Για παράδειγμα, αν ο τομέας της εταιρίας
- σας είναι <systemitem class="fqdomainname">example.com</systemitem> και ο
- παροχέας σας Internet έχει ορίσει το
- <systemitem class="fqdomainname">example.net</systemitem> να παρέχει
- υπηρεσίες δευτερεύοντος MX<indexterm><primary>MX record</primary>
- </indexterm> για τον τομέα σας:</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> στο
- <systemitem class="fqdomainname">example.com</systemitem>).</para>
-
- <para>Όταν το μηχάνημα που στέλνει μέσω του
- <command>sendmail</command> προσπαθεί να παραδώσει το mail θα
- προσπαθήσει να συνδεθεί στο δικό σας
- (<systemitem class="fqdomainname">example.com</systemitem>) μέσω της σύνδεσης
- modem. Το πιο πιθανό είναι ότι δεν θα τα καταφέρει, γιατί δεν
- θα είστε συνδεμένος εκείνη τη στιγμή. Το
- <application>sendmail</application> θα το παραδώσει αυτόματα στην
- υπηρεσία δευτερεύοντος MX, π.χ. τον παροχέα σας Internet
- (<systemitem class="fqdomainname">example.net</systemitem>). Το δευτερεύον
- MX θα προσπαθεί περιοδικά να συνδεθεί στο μηχάνημα σας και να
- παραδώσει το mail στον κύριο εξυπηρετητή MX
- (<systemitem class="fqdomainname">example.com</systemitem>).</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 στην ουρά για
- το <systemitem class="fqdomainname">example.com</systemitem>.</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 xml:id="mail-advanced">
- <title>Προχωρημένα Θέματα</title>
-
- <para>Η ακόλουθη ενότητα καλύπτει πιο προχωρημένα θέματα, όπως τη ρύθμιση
- του mail και ρυθμίσεις για ένα ολόκληρο τομέα.</para>
-
- <sect2 xml: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 για τον τομέα σας. Για παράδειγμα, <systemitem class="fqdomainname">FreeBSD.org</systemitem></para>
- </listitem>
-
- <listitem>
- <para>Να παραλαμβάνετε mail απευθείας στο μηχάνημα σας. Αυτό
- γίνεται αν το mail παραδίδεται απευθείας στον υπολογιστή σας,
- χρησιμοποιώντας τον όνομα του (πρέπει να βρίσκεται στο DNS).
- Για παράδειγμα,
- <systemitem class="fqdomainname">example.FreeBSD.org</systemitem>.</para>
- </listitem>
- </itemizedlist>
-
- <indexterm><primary>SMTP</primary></indexterm>
- <para>Όποια επιλογή από τις παραπάνω και να κάνατε, για να είναι δυνατή
- η παραλαβή mail απευθείας στον υπολογιστή σας, θα πρέπει να έχετε
- μόνιμη στατική διεύθυνση IP (όχι δυναμική, όπως είναι οι περισσότερες
- επιλογικές συνδέσεις PPP). Αν βρίσκεστε πίσω από κάποιο firewall,
- θα πρέπει να επιτρέπει τη διακίνηση SMTP προς εσάς. Αν θέλετε να
- λαμβάνετε mail απευθείας στον υπολογιστή σας, θα πρέπει να
- εξασφαλίσετε <emphasis>ένα</emphasis> από τα παρακάτω:</para>
-
- <itemizedlist>
- <listitem>
- <para>Να βεβαιωθείτε ότι η εγγραφή MX<indexterm><primary>MX record</primary></indexterm> (με το χαμηλότερο αριθμό)
- στο 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> εκτελείτε σωστά στον υπολογιστή
- <systemitem class="fqdomainname">example.FreeBSD.org</systemitem>).</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 που κατευθύνεται προς τον υπολογιστή σας (<systemitem class="fqdomainname">example.FreeBSD.org</systemitem>) θα καταλήξει να
- συλλέγεται στο <systemitem>hub</systemitem> με το ίδιο όνομα χρήστη, αντί να
- σταλεί απευθείας στο μηχάνημα σας.</para>
-
- <para>Τις παραπάνω πληροφορίες, τις χειρίζεται ο δικός σας εξυπηρετητής
- DNS. Η εγγραφή DNS που περιέχει τις πληροφορίες δρομολόγησης για το
- mail, είναι η <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change.
- Αν δεν υπάρχει εγγραφή MX, το mail θα παραδίδεται απευθείας στον
- υπολογιστή μέσω της IP διεύθυνσης του.</para>
-
- <para>Η καταχώριση MX για τον <systemitem class="fqdomainname">freefall.FreeBSD.org</systemitem> έμοιαζε κάποια στιγμή με
- την παρακάτω:</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>Όπως μπορείτε να δείτε, ο <systemitem>freefall</systemitem> είχε πολλές
- καταχωρήσεις MX. Η καταχώρηση με τον μικρότερο αριθμό, είναι ο
- υπολογιστής που λαμβάνει το mail απευθείας, αν είναι διαθέσιμος.
- Αν για κάποιο λόγο δεν είναι προσβάσιμος, οι άλλοι (που ορισμένες
- φορές καλούνται <quote>backup MXes</quote>) δέχονται τα μηνύματα
- προσωρινά και τα μεταβιβάζουν σε κάποιο υπολογιστή με χαμηλότερη
- αρίθμηση, μόλις γίνει διαθέσιμος. Τελικά τα μηνύματα καταλήγουν
- στον υπολογιστή με το μικρότερο αριθμό.</para>
-
- <para>Οι εναλλακτικές τοποθεσίες MX, θα πρέπει να χρησιμοποιούν
- διαφορετικές γραμμές για τη σύνδεση τους με το Internet. Αυτή είναι
- η καλύτερη λύση. Ο παροχέας σας ή κάποιο άλλο φιλικό site, δεν
- θα έχουν κανένα πρόβλημα να σας παρέχουν αυτή την υπηρεσία.</para>
- </sect2>
-
- <sect2 xml:id="mail-domain">
- <title>Mail για τον Τομέα Σας</title>
-
- <para>Για να δημιουργήσετε ένα <quote>mailhost</quote> (δηλ. ένα
- εξυπηρετητή mail) θα πρέπει οποιοδήποτε mail στέλνεται προς κάποιο
- σταθμό εργασίας, να λαμβάνεται σε αυτόν. Βασικά θα θέλετε να
- <quote>διεκδικείτε</quote> οποιοδήποτε mail που κατευθύνεται προς
- οποιοδήποτε όνομα μηχανήματος του τομέα σας (στην περίπτωση μας το
- <systemitem class="fqdomainname">*.FreeBSD.org</systemitem>) και να το ανακατευθύνετε
- προς τον εξυπηρετητή 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>Αν παρέχετε υπηρεσίες εικονικού ταχυδρομείου, οι παρακάτω
- πληροφορίες θα σας φανούν χρήσιμες. Για το παράδειγμα μας, θα
- υποθέσουμε ότι έχετε ένα πελάτη με το δικό του τομέα, στην περίπτωση
- μας το <systemitem class="fqdomainname">customer1.org</systemitem>, και θέλετε
- όλο το mail για το <systemitem class="fqdomainname">customer1.org</systemitem>
- να στέλνεται στο δικό σας mailhost, <systemitem class="fqdomainname">mail.myhost.com</systemitem>. Η καταχώριση σας στο DNS θα
- μοιάζει με την παρακάτω:</para>
-
- <programlisting>customer1.org MX 10 mail.myhost.com</programlisting>
-
- <para>Σημειώστε ότι <emphasis>δεν χρειάζεστε</emphasis> εγγραφή τύπου Α
- για το <systemitem class="fqdomainname">customer1.org</systemitem> αν θέλετε
- απλώς να χειρίζεστε email για αυτό τον τομέα.</para>
-
- <note>
- <para>Να έχετε υπόψη σας ότι δεν θα μπορείτε να κάνετε ping το <systemitem class="fqdomainname">customer1.org</systemitem> αν δεν υπάρχει για αυτό
- εγγραφή τύπου Α.</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 xml: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>uucp-neighbor
- !recipient</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 xml:id="outgoing-only">
- <info><title>Ρύθμιση Εξυπηρετητή Μόνο για Αποστολή</title>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Moran</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 <package>mail/ssmtp</package>
- Εκτελέστε τις ακόλουθες εντολές ως <systemitem class="username">root</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput>
-&prompt.root; <userinput>make install replace clean</userinput></screen>
-
- <para>Μετά την εγκατάσταση, το
- <package>mail/ssmtp</package> μπορεί να ρυθμιστεί με
- ένα αρχείο τεσσάρων μόλις γραμμών, το οποίο βρίσκεται στο
- <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 για
- τον <systemitem class="username">root</systemitem>. Βάλτε τον αναμεταδότη mail του ISP σας
- στη θέση <systemitem class="fqdomainname">mail.example.com</systemitem> (μερικοί ISP τον
- ονομάζουν <quote>εξυπηρετητή εξερχόμενου ταχυδρομείου</quote> ή
- <quote>εξυπηρετητή SMTP</quote>).</para>
-
- <para>Βεβαιωθείτε ότι έχετε απενεργοποιήσει πλήρως το
- <application>sendmail</application>, ακόμα και την υπηρεσία εξερχόμενων
- μηνυμάτων. Δείτε το
- <xref linkend="mail-disable-sendmail"/> για λεπτομέρειες.</para>
-
- <para>Υπάρχουν κάποιες ακόμα διαθέσιμες επιλογές στο
- <package>mail/ssmtp</package>. Δείτε το παράδειγμα του
- αρχείου ρυθμίσεων στο <filename>/usr/local/etc/ssmtp</filename> ή τη
- σελίδα manual του <application>ssmtp</application> για περισσότερα
- παραδείγματα και πληροφορίες.</para>
-
- <para>Ρυθμίζοντας το <application>ssmtp</application> με αυτό τον τρόπο,
- θα είναι δυνατή η σωστή λειτουργία οποιουδήποτε λογισμικού στον
- υπολογιστή σας που χρειάζεται να στείλει mail. Επίσης δεν παραβιάζεται
- με αυτό τον τρόπο η άδεια χρήσης του ISP σας και δεν μπορεί ο
- υπολογιστής σας να παραβιαστεί και να χρησιμοποιηθεί για την αποστολή
- ανεπιθύμητων μηνυμάτων (spam).</para>
- </sect1>
-
- <sect1 xml:id="SMTP-dialup">
- <title>Χρησιμοποιώντας το Mail Μέσω Επιλογικής (Dialup) Σύνδεσης</title>
-
- <para>Αν έχετε στατική διεύθυνση IP, δεν θα χρειαστεί να αλλάξετε καμιά
- από τις προεπιλογές. Ρυθμίστε το όνομα του υπολογιστή σας ώστε να
- ταιριάζει με αυτό που σας έχει οριστεί για το Internet, και το
- <application>sendmail</application> θα κάνει τα υπόλοιπα.</para>
-
- <para>Αν λαμβάνετε δυναμική IP και χρησιμοποιείτε επιλογική PPP σύνδεση
- με το Internet, πιθανόν διαθέτετε μια θυρίδα ταχυδρομείου (mailbox)
- στον εξυπηρετητή mail του παροχέα σας. Ας υποθέσουμε ότι ο τομέας του
- ISP σας είναι <systemitem class="fqdomainname">example.net</systemitem>, και ότι
- το όνομα χρήστη σας είναι <systemitem class="username">user</systemitem>, το μηχάνημα σας
- λέγεται <systemitem class="fqdomainname">bsd.home</systemitem>, και ο ISP σας, σας έχει
- πει ότι μπορείτε να χρησιμοποιήσετε το
- <systemitem class="fqdomainname">relay.example.net</systemitem> ως αναμεταδότη για
- το mail.</para>
-
- <para>Για να μπορέσετε να λάβετε mail από τη θυρίδα σας, θα χρειαστείτε
- κάποιο αντιπρόσωπο ανάληψης (retrieval agent). Το βοηθητικό πρόγραμμα
- <application>fetchmail</application> είναι μια καλή επιλογή, καθώς
- υποστηρίζει πολλά διαφορετικά πρωτόκολλα. Το πρόγραμμα αυτό είναι
- διαθέσιμο ως πακέτο ή από την Συλλογή των Ports
- (<package>mail/fetchmail</package>). Συνήθως, ο
- <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>Ας υποθέσουμε ότι υπάρχει ένας λογαριασμός για τον
- <systemitem class="username">user</systemitem> στον <systemitem class="fqdomainname">bsd.home</systemitem>. Στον προσωπικό κατάλογο του
- <systemitem class="username">user</systemitem> στο <systemitem class="fqdomainname">bsd.home</systemitem>, δημιουργήστε ένα αρχείο
- <filename>.fetchmailrc</filename>:</para>
-
- <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>
-
- <para>Το αρχείο αυτό δεν θα πρέπει να είναι αναγνώσιμο από κανένα, εκτός
- από τον <systemitem class="username">user</systemitem>, καθώς περιέχει τον κωδικό
- <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
- μέσω του <systemitem class="fqdomainname">relay.example.net</systemitem>, ώστε η μετάδοση
- του 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 xml:id="SMTP-Auth">
- <info><title>Πιστοποίηση Αυθεντικότητας στο SMTP</title>
- <authorgroup>
- <author><personname><firstname>James</firstname><surname>Gorham</surname></personname><contrib>Γράφτηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <para>Η χρήση <acronym>SMTP</acronym> με πιστοποίηση αυθεντικότητας στον
- εξυπηρετητή ταχυδρομείου σας, μπορεί να σας προσφέρει μια σειρά από
- οφέλη. Μπορεί να προσθέσει ένα ακόμα επίπεδο ασφάλειας στο
- <application>sendmail</application>, ενώ έχει και το πλεονέκτημα ότι
- δίνει τη δυνατότητα στους χρήστες φορητών υπολογιστών (που συχνά
- συνδέονται μέσω διαφορετικών δικτύων) να χρησιμοποιούν τον ίδιο
- εξυπηρετητή ταχυδρομείου χωρίς την ανάγκη επαναρύθμισης κάθε φορά του
- προγράμματος αποστολής / λήψης ταχυδρομείου.</para>
-
- <procedure>
- <step>
- <para>Εγκαταστήστε το
- <package>security/cyrus-sasl2</package>
- από τη Συλλογή των Ports. Το port αυτό
- υποστηρίζει μια σειρά από επιλογές που μπορείτε να θέσετε κατά
- την μεταγλώττιση. Για να μπορέσετε να χρησιμοποιήσετε την
- μέθοδο αυθεντικοποίησης στο SMTP που συζητάμε εδώ, βεβαιωθείτε
- ότι είναι ενεργοποιημένη η επιλογή <option>LOGIN</option>.</para>
- </step>
-
- <step>
- <para>Μετά την εγκατάσταση του
- <package>security/cyrus-sasl2</package>,
- τροποποιήστε το αρχείο
- <filename>/usr/local/lib/sasl2/Sendmail.conf</filename>
- (ή δημιουργήστε το αν δεν υπάρχει) και προσθέστε την παρακάτω
- γραμμή:</para>
-
- <programlisting>pwcheck_method: saslauthd</programlisting>
- </step>
-
- <step>
- <para>Εγκαταστήστε έπειτα το
- <package>security/cyrus-sasl2-saslauthd</package>,
- και προσθέστε στο <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> τις κατάλληλες ρυθμίσεις ώστε
- να συνδεθεί σωστά με το
- <package>cyrus-sasl2</package> κατά τη διάρκεια
- της μεταγλώττισης. Βεβαιωθείτε ότι είναι εγκατεστημένο το πακέτο
- <package>cyrus-sasl2</package> πριν ξεκινήσετε
- την επαναμεταγλώττιση του
- <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 &amp;&amp; make obj &amp;&amp; make</userinput>
-&prompt.root; <userinput>cd /usr/src/lib/libsm</userinput>
-&prompt.root; <userinput>make cleandir &amp;&amp; make obj &amp;&amp; make</userinput>
-&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput>
-&prompt.root; <userinput>make cleandir &amp;&amp; make obj &amp;&amp; make &amp;&amp; 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> που αφορά την
- <link xlink:href="http://www.sendmail.org/~ca/email/auth.html">πιστοποίηση
- αυθεντικότητας στο <acronym>SMTP</acronym></link>.</para>
- </sect1>
-
- <sect1 xml:id="mail-agents">
- <info><title>Προγράμματα Ταχυδρομείου για τον Χρήστη</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Silver</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 xml: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>/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
-&gt;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
- <package>converters/mpack</package>.</para>
- </note>
- </sect2>
-
- <sect2 xml: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> ένα από τα πιο εξελιγμένα διαθέσιμα
- προγράμματα ταχυδρομείου. Δείτε την τοποθεσία <uri xlink:href="http://www.mutt.org">http://www.mutt.org</uri> για περισσότερες πληροφορίες
- σχετικά με το <application>mutt</application>.</para>
-
- <para>Μπορείτε να εγκαταστήσετε τη σταθερή έκδοση του
- <application>mutt</application> μέσω του port <package>mail/mutt</package>, ενώ και η τρέχουσα υπό εξέλιξη
- έκδοση είναι διαθέσιμη μέσω του port <package>mail/mutt-devel</package>. Μετά την εγκατάσταση
- του port, μπορείτε να εκτελέσετε το <application>mutt</application>,
- με την ακόλουθη εντολή:</para>
-
- <screen>&prompt.user; <userinput>mutt</userinput></screen>
-
- <para>Το <application>mutt</application> θα διαβάσει αυτόματα τα
- περιεχόμενα της θυρίδας ταχυδρομείου χρήστη στον κατάλογο <filename>/var/mail</filename>, και θα δείξει τα περιεχόμενα
- του αν αυτό είναι εφικτό. Αν δεν υπάρχουν mails στη θυρίδα του
- χρήστη, το <application>mutt</application> θα εισέλθει σε κατάσταση
- αναμονής εντολών. Το παρακάτω παράδειγμα, δείχνει το
- <application>mutt</application> να απεικονίζει μια λίστα
- μηνυμάτων:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="mail/mutt1"/>
- </imageobject>
- </mediaobject>
-
- <para>Για να διαβάσετε ένα email, επιλέξτε το χρησιμοποιώντας τα
- βελάκια, και πιέστε <keycap>Enter</keycap>. Μπορείτε να δείτε ένα
- παράδειγμα απεικόνισης mail από το <application>mutt</application>
- παρακάτω:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="mail/mutt2"/>
- </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>. Δείτε την τοποθεσία
- <uri xlink:href="http://www.mutt.org/">http://www.mutt.org/</uri> για περισσότερες
- πληροφορίες σχετικά με τη ρύθμιση του
- <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"/>
- </imageobject>
- </mediaobject>
-
- <para>Το <application>mutt</application> περιέχει επίσης εκτεταμένη
- βοήθεια, στην οποία μπορείτε να έχετε πρόσβαση σχεδόν από κάθε σημείο
- του μενού, πιέζοντας το πλήκτρο <keycap>?</keycap>. Η γραμμή στην
- κορυφή της οθόνης δείχνει επίσης τις συντομεύσεις πληκτρολογίου,
- όπου υπάρχουν.</para>
- </sect2>
-
- <sect2 xml: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 <package>mail/alpine</package>. Μετά την εγκατάσταση του
- 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"/>
- </imageobject>
- </mediaobject>
-
- <para>Θα εμφανιστεί κατόπιν το κύριο μενού, στο οποίο μπορείτε να
- μετακινηθείτε εύκολα χρησιμοποιώντας τα βελάκια. Αυτό το κύριο μενού
- παρέχει πλήκτρα συντόμευσης για δημιουργία νέων mail, για
- ανίχνευση στους καταλόγους mail, και ακόμα για διαχείριση καταχωρήσεων
- στο βιβλίο διευθύνσεων. Κάτω από το κύριο μενού, εμφανίζονται
- συντομεύσεις πληκτρολογίου σχετικές με την εργασία που γίνεται τη
- συγκεκριμένη στιγμή.</para>
-
- <para>Ο προεπιλεγμένος κατάλογος που ανοίγει το
- <application>alpine</application> είναι το
- <filename>inbox</filename>. Για να δείτε το
- ευρετήριο των μηνυμάτων, πιέστε το <keycap>I</keycap>, ή επιλέξτε το
- <guimenuitem>MESSAGE INDEX</guimenuitem> όπως φαίνεται
- παρακάτω:</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="mail/pine2"/>
- </imageobject>
- </mediaobject>
-
- <para>Το ευρετήριο μηνυμάτων δείχνει μηνύματα από τον τρέχοντα
- κατάλογο, και μπορείτε να μετακινηθείτε σε αυτό με τα βελάκια.
- Μπορείτε να διαβάσετε το επιλεγμένο μήνυμα, πιέζοντας το πλήκτρο
- <keycap>Enter</keycap>.</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="mail/pine3"/>
- </imageobject>
- </mediaobject>
-
- <para>Στην εικόνα που φαίνεται παρακάτω, το
- <application>alpine</application> απεικονίζει ένα υπόδειγμα μηνύματος.
- Στο κάτω μέρος της οθόνης φαίνονται σχετικές συντομεύσεις
- πληκτρολογίου. Ένα παράδειγμα τέτοιας συντόμευσης, είναι το πλήκτρο
- <keycap>r</keycap> το οποίο λέει στο <acronym>MUA</acronym> να
- δημιουργήσει απάντηση προς το τρέχον μήνυμα που απεικονίζεται.</para>
-
- <mediaobject>
- <imageobject>
- <imagedata fileref="mail/pine4"/>
- </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"/>
- </imageobject>
- </mediaobject>
-
- <para>Μπορείτε να προσαρμόσετε το <application>alpine</application>
- με τη χρήση της επιλογής <guimenuitem>SETUP</guimenuitem> από το κύριο
- μενού. Συμβουλευθείτε την τοποθεσία <uri xlink:href="http://www.washington.edu/alpine/">http://www.washington.edu/alpine/</uri> για περισσότερες
- πληροφορίες.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mail-fetchmail">
- <info><title>Χρησιμοποιώντας το fetchmail</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Silver</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 <package>mail/fetchmail</package> και παρέχει διάφορα
- χαρακτηριστικά, μερικά από τα οποία περιλαμβάνουν:</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> να συνδεθεί στο <systemitem class="fqdomainname">example.com</systemitem> χρησιμοποιώντας όνομα χρήστη
- <systemitem class="username">joesoap</systemitem> και κωδικό <literal>XXX</literal>.
- Το παράδειγμα υποθέτει ότι ο χρήστης <systemitem class="username">joesoap</systemitem> είναι
- επίσης και χρήστης του τοπικού συστήματος.</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> στην τοποθεσία <uri xlink:href="http://fetchmail.berlios.de/">http://fetchmail.berlios.de/</uri>.</para>
- </sect1>
-
- <sect1 xml:id="mail-procmail">
- <info><title>Χρησιμοποιώντας το procmail</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Silver</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm>
- <primary>procmail</primary>
- </indexterm>
-
- <para>Το βοηθητικό πρόγραμμα <application>procmail</application> είναι
- μια απίστευτα ισχυρή εφαρμογή που μπορεί να χρησιμοποιηθεί για το
- φιλτράρισμα του εισερχόμενου mail. Επιτρέπει στους χρήστες να
- ορίζουν <quote>κανόνες</quote> οι οποίοι μπορεί να ταιριάζουν σε
- εισερχόμενα mail και να εκτελούν διάφορες λειτουργίες, ή να
- ανακατευθύνουν το mail σε εναλλακτικές θυρίδες ή / και διευθύνσεις
- ταχυδρομείου. Το <application>procmail</application> μπορεί να
- εγκατασταθεί χρησιμοποιώντας το port <package>mail/procmail</package>. Μετά την εγκατάσταση του,
- μπορεί να ενσωματωθεί σχεδόν σε οποιοδήποτε
- <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 από τις λίστες ταχυδρομείου
- <systemitem class="fqdomainname">&os;.org</systemitem> και τοποθετεί το κάθε
- μήνυμα σε διαφορετική θυρίδα:</para>
-
- <programlisting>:0
-* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
-{
- LISTNAME=${MATCH}
- :0
- * LISTNAME??^\/[^@]+
- FreeBSD-${MATCH}
-}</programlisting>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.xml b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.xml
deleted file mode 100644
index e59ce11e7e..0000000000
--- a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.xml
+++ /dev/null
@@ -1,3388 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Που θα Βρείτε το FreeBSD
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
- %SRCID% 39186
-
--->
-<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mirrors">
- <title>Που θα Βρείτε το &os;</title>
-
- <sect1 xml:id="mirrors-cdrom">
- <title>Εκδόσεις σε CDROM και DVD</title>
-
- <sect2>
- <title>Retail Εκδόσεις</title>
-
- <para>Το &os; είναι διαθέσιμο ως εμπορικό προϊόν (&os; CD, επιπρόσθετο
- λογισμικό, και τυπωμένη τεκμηρίωση) από διάφορους προμηθευτές:</para>
-
- <itemizedlist>
- <listitem>
- <address>
- Frys Electronics
- WWW: <otheraddr xlink:href="http://www.frys.com/">http://www.frys.com/</otheraddr>
- </address>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>CD και DVD διανομές</title>
-
- <para>Το &os; είναι διαθέσιμο σε CD και DVD για αγορά μέσω διαδικτύου
- από τους παρακάτω προμηθευτές:</para>
-
- <itemizedlist>
- <listitem>
- <address>
- &os; Mall, Inc.
- <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 xlink:href="http://www.freebsdmall.com/">http://www.freebsdmall.com/</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- Dr. Hinner EDV
- <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 xlink:href="http://www.hinner.de/linux/freebsd.html">http://www.hinner.de/linux/freebsd.html</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- JMC Software
- <country>Ireland</country>
- Τηλέφωνο: <phone>353 1 6291282</phone>
- WWW: <otheraddr xlink:href="http://www.thelinuxmall.com">http://www.thelinuxmall.com</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- Linux Distro UK
- <street>42 Wharfedale Road</street>
- <city>Margate</city>
- <postcode>CT9 2TB</postcode>
- <country>United Kingdom</country>
- WWW: <otheraddr xlink:href="https://linux-distro.co.uk/">https://linux-distro.co.uk/</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- The Linux Emporium
- <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 xlink:href="http://www.linuxemporium.co.uk/products/bsd/">http://www.linuxemporium.co.uk/products/bsd/</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- Linux+ DVD Magazine
- <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 xlink:href="http://www.lpmagazine.org/">http://www.lpmagazine.org/</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- Linux System Labs Australia
- <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 xlink:href="http://www.lsl.com.au">http://www.lsl.com.au</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- LinuxCenter.Ru
- <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 xlink:href="http://linuxcenter.ru/shop/freebsd">http://linuxcenter.ru/shop/freebsd</otheraddr>
- </address>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2>
- <title>Διανομείς</title>
-
- <para>Αν είστε μεταπωλητής και μπορείτε να διανείμετε σε CD-ROM προϊόντα
- βασισμένα στο &os;, παρακαλούμε επικοινωνήστε με κάποιον από τους
- διανομείς:</para>
-
- <itemizedlist>
- <listitem>
- <address>
- Ingram Micro
- <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 xlink:href="http://www.ingrammicro.com/">http://www.ingrammicro.com/</otheraddr>
- </address>
- </listitem>
-
- <listitem>
- <address>
- Kudzu, LLC
- <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>
- LinuxCenter.Ru
- <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 xlink:href="http://linuxcenter.ru/freebsd">http://linuxcenter.ru/freebsd</otheraddr>
- </address>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="mirrors-ftp">
- <title>Εξυπηρετητές FTP</title>
-
- <para>Οι επίσημες εκδόσεις του &os; είναι διαθέσιμες μέσω ανώνυμης FTP
- σύνδεσης από διάφορους εξυπηρετητές FTP σε όλο τον κόσμο. Ο κεντρικός
- εξυπηρετητής <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp://ftp.FreeBSD.org/pub/FreeBSD/</uri>
- έχει πολύ καλή σύνδεση με τον υπόλοιπο κόσμο, και επιτρέπει ένα μεγάλο
- αριθμό ταυτόχρονων συνδέσεων. Ακόμα κι έτσι όμως, είναι μάλλον καλή
- ιδέα να βρείτε κάποιο εξυπηρετητή 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.index.inc;
-
- &chap.mirrors.lastmod.inc;
-
- &chap.mirrors.ftp.inc;
- </sect1>
-
- <sect1 xml:id="mirrors-bittorrent">
- <title>BitTorrent</title>
-
- <indexterm>
- <primary>BitTorrent</primary>
- </indexterm>
-
- <para>Μπορείτε να ανακτήσετε τα βασικά αρχεία ISO των εκδόσεων του &os;,
- μέσω του συστήματος BitTorrent. Στην τοποθεσία <link xlink:href="http://torrents.freebsd.org:8080/">http://torrents.freebsd.org:8080</link>
- υπάρχει μια πλήρης συλλογή από αρχεία torrent που μπορείτε να
- κατεβάσετε.</para>
-
- <para>Για να χρησιμοποιήσετε τα αρχεία torrent, θα χρειαστείτε κατάλληλο
- λογισμικό-πελάτη, όπως αυτό που παρέχεται από το port ή πακέτο
- <package>net-p2p/py-bittorrent</package>.</para>
-
- <para>Αφού κατεβάσετε το αρχείο ISO με το BitTorrent, μπορείτε να το
- γράψετε σε CD ή DVD, όπως περιγράφεται στο <xref linkend="burncd"/>
- (burncd).</para>
- </sect1>
-
- <sect1 xml:id="anoncvs">
- <title>Ανώνυμο CVS</title>
-
- <sect2 xml:id="anoncvs-intro">
- <title>Εισαγωγή</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 xml:id="anoncvs-usage">
- <title>Χρησιμοποιώντας Ανώνυμο 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><link xlink:href="http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html">CVS Tutorial</link> από το California Polytechnic State
- University.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.nongnu.org/cvs/">CVS Home</link>,
- η ομάδα ανάπτυξης και υποστήριξης του CVS.</para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</link>
- Διεπαφή Web για το CVS του &os; Project.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
-
- <sect1 xml: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><uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/</uri></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 xml: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><uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Νότια Αφρική, αντίγραφα ασφαλείας για παλιά deltas</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><uri xlink:href="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/">ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/</uri></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Ταϊβάν/R.O.C.</term>
-
- <listitem>
- <itemizedlist>
- <listitem>
- <para><uri xlink:href="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para>
- </listitem>
-
- <listitem>
- <para><uri xlink:href="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para>
- </listitem>
-
- <listitem>
- <para><uri xlink:href="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/">ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/</uri></para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Αν δεν βρήκατε κάποιο mirror στην περιοχή σας, ή αν το mirror δεν
- είναι πλήρες, προσπαθήστε να χρησιμοποιήσετε μια μηχανή αναζήτησης
- όπως η <link xlink:href="http://www.alltheweb.com/">alltheweb</link>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="cvsup">
- <title>Χρησιμοποιώντας το CVSup</title>
-
- <sect2 xml: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 xml:id="cvsup-install">
- <title>Εγκατάσταση</title>
-
- <para>Ο ευκολότερος τρόπος για να εγκαταστήσετε το
- <application>CVSup</application> είναι μέσω του έτοιμου πακέτου
- <package>net/cvsup</package> από την
- <link linkend="ports">συλλογή πακέτων</link> του &os;. Αν προτιμάτε
- να μεταγλωττίσετε το <application>CVSup</application> από τον πηγαίο
- κώδικα, μπορείτε να χρησιμοποιήσετε το port
- <package>net/cvsup</package>. Σας προειδοποιούμε
- ωστόσο ότι το port <package>net/cvsup</package>
- εξαρτάται από την Modula-3, η οποία χρειάζεται αρκετό χρόνο και χώρο
- στο δίσκο για να κατέβει και να μεταγλωττιστεί.</para>
-
- <note>
- <para>Αν πρόκειται να χρησιμοποιήσετε το
- <application>CVSup</application> σε ένα μηχάνημα το οποίο δεν θα
- διαθέτει γραφικό περιβάλλον μέσω του
- <application>&xorg;</application>, όπως π.χ. σε ένα εξυπηρετητή,
- βεβαιωθείτε ότι εγκαθιστάτε το αντίστοιχο port το οποίο δεν
- περιλαμβάνει γραφικό περιβάλλον, δηλαδή το
- <package>net/cvsup-without-gui</package>.</para>
- </note>
- </sect2>
-
- <sect2 xml:id="cvsup-config">
- <title>Ρύθμιση του CVSup</title>
-
- <para>Η λειτουργία του <application>CVSup</application> ελέγχεται
- από ένα αρχείο ρυθμίσεων που καλείται <filename>supfile</filename>.
- Υπάρχουν κάποια υποδείγματα από <filename>supfiles</filename> στον
- κατάλογο <link xlink:href="file://localhost/usr/share/examples/cvsup/"><filename>/usr/share/examples/cvsup/</filename></link>.</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 xml: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 xml: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 xml:id="cvsup-config-where"/>Από που θέλετε να τα
- λάβετε;</para>
-
- <para>Χρησιμοποιούμε το πεδίο <literal>host=</literal> για να πούμε
- στο <command>cvsup</command> από που να λάβει τις ανανεώσεις του.
- Οποιοδήποτε από τα
- <link linkend="cvsup-mirrors">CVSup mirror sites</link> είναι
- κατάλληλο, αν και θα πρέπει να προσπαθήσετε να επιλέξετε κάποιο
- το οποίο να βρίσκεται κοντά σας. Στο παράδειγμα μας, θα
- χρησιμοποιήσουμε μια φανταστική τοποθεσία διανομής του &os;, το
- <systemitem class="fqdomainname">cvsup99.FreeBSD.org</systemitem>:</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 xml: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 xml: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 xml: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>base/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>κ.ο.κ. για τις υπόλοιπες γλώσσες (μπορείτε να βρείτε την πλήρη
- λίστα στο <link xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi/"> &os; CVS
- repository</link>).</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 supfile</userinput></screen>
-
- <para>όπου το <filename>supfile</filename>
- είναι φυσικά το όνομα του αρχείου <filename>supfile</filename> που
- μόλις δημιουργήσατε. Υποθέτοντας ότι χρησιμοποιείτε τα X11, η εντολή
- <command>cvsup</command> θα σας εμφανίσει ένα γραφικό παράθυρο με
- κάποια πλήκτρα συνηθισμένων λειτουργιών. Πιέστε το πλήκτρο
- <guibutton>go</guibutton>, και παρακολουθήστε την εκτέλεση.</para>
-
- <para>Καθώς στην περίπτωση μας ανανεώνεται το πραγματικό δέντρο
- <filename>/usr/src</filename>, θα χρειαστεί να εκτελέσετε το
- πρόγραμμα ως <systemitem class="username">root</systemitem> ώστε η
- <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>,
- δεν χρειάζεστε να είστε καν <systemitem class="username">root</systemitem> για να κάνετε
- αυτή τη δοκιμαστική εκτέλεση.</para>
-
- <para>Αν δεν εκτελείτε τα X11 ή απλώς δεν σας αρέσουν τα γραφικά
- περιβάλλοντα, μπορείτε να δώσετε κάποιες επιλογές στην γραμμή εντολών
- όταν εκτελείτε την <command>cvsup</command>:</para>
-
- <screen>&prompt.root; <userinput>cvsup -g -L 2 supfile</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 xml: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 xml: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 xml:id="cvsup-collec-index-warn">
- <para>Αν σκοπεύετε να δημιουργήσετε το δικό σας τοπικό
- αντίγραφο του <filename>ports/INDEX</filename>, θα
- <emphasis>πρέπει</emphasis> να δεχτείτε τη συλλογή
- <literal>ports-all</literal> (ολόκληρο το δέντρο των
- ports). H δημιουργία του
- <filename>ports/INDEX</filename> από μη-πλήρες δέντρο
- δεν υποστηρίζεται. Δείτε το
- <link xlink:href="&url.books.faq;/applications.html#MAKE-INDEX"> FAQ</link>.</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> και άλλες
- πληροφορίες σχετικά με αυτό, δείτε τη
- <link xlink:href="http://www.cvsup.org">Σελίδα του CVSup</link>.</para>
-
- <para>Συζητήσεις σχετικά με τη χρήση του
- <application>CVSup</application> στο &os; λαμβάνουν χώρα στην
- &a.hackers;. Στη λίστα αυτή, καθώς και στην &a.announce;
- ανακοινώνονται και οι νέες εκδόσεις του προγράμματος.</para>
-
- <para>Για ερωτήσεις ή αναφορές σφαλμάτων σχετικά με το
- <application>CVSup</application> ρίξτε μια ματιά στο
- <link xlink:href="http://www.cvsup.org/faq.html#bugreports">CVSup FAQ</link>.</para>
- </sect2>
-
- <sect2 xml:id="cvsup-mirrors">
- <title>Τοποθεσίες CVSup</title>
-
- <para>Μπορείτε να βρείτε εξυπηρετητές <link linkend="cvsup">CVSup</link>
- για το &os; στις ακόλουθες τοποθεσίες:</para>
-
- &chap.mirrors.cvsup.index.inc;
-
- &chap.mirrors.lastmod.inc;
-
- &chap.mirrors.cvsup.inc;
- </sect2>
- </sect1>
-
- <sect1 xml: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_3</term>
-
- <listitem>
- <para>Η γραμμή έκδοσης του &os;-8.3, χρησιμοποιείται μόνο για
- ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</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;. Η
- διαδικασία της έκδοσης τεκμηριώνεται με περισσότερες λεπτομέρειες στα
- έγγραφα <link xlink:href="&url.base;/releng/">Πληροφορίες Διαδικασίας
- Έκδοσης</link> και <link xlink:href="&url.articles.releng;/release-proc.html">Διαδικασία
- Έκδοσης</link>.
- Το δέντρο <filename>src</filename> χρησιμοποιεί
- ονόματα ετικετών που ξεκινούν με τη λέξη <literal>RELENG_</literal>.
- Τα δέντρα <filename>ports</filename> και
- <filename>doc</filename> χρησιμοποιούν ετικέτες που
- ξεκινούν με τη λέξη <literal>RELEASE</literal>.
- Τέλος, στο δέντρο <filename>www</filename> δεν
- δίνεται κάποια ειδική ετικέτα που να έχει σχέση με τις
- εκδόσεις.</para>
-
- <variablelist>
- <varlistentry>
- <term>RELENG_9_0_0_RELEASE</term>
-
- <listitem>
- <para>&os; 9.0</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RELENG_8_3_0_RELEASE</term>
-
- <listitem>
- <para>&os; 8.3</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 xml: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 xml: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
- <package>net/rsync</package> ή χρησιμοποιήστε το
- αντίστοιχο πακέτο.</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>
diff --git a/el_GR.ISO8859-7/books/handbook/multimedia/chapter.xml b/el_GR.ISO8859-7/books/handbook/multimedia/chapter.xml
deleted file mode 100644
index a5d67c4f46..0000000000
--- a/el_GR.ISO8859-7/books/handbook/multimedia/chapter.xml
+++ /dev/null
@@ -1,1970 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Πολυμέσα
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/multimedia/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="multimedia">
- <info><title>Πολυμέσα</title>
- <authorgroup>
- <author><personname><firstname>Ross</firstname><surname>Lippert</surname></personname><contrib>Επεξεργασία από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <sect1 xml: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, όπως το
- <package>audio/sox</package>. Παρ' όλα αυτά, το τοπίο
- σε αυτό τον τομέα, και όσο αφορά το λογισμικό, αλλάζει ραγδαία.</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 xml:id="sound-setup">
- <info><title>Ρύθμιση της Κάρτας Ήχου</title>
- <authorgroup>
- <author><personname><firstname>Moses</firstname><surname>Moore</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Βελτιώθηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect2 xml: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. Ελέγξτε τις υποστηριζόμενες συσκευές ήχου στις
- <link xlink:href="&rel.current.hardware;">Σημειώσεις Υλικού</link> για να
- δείτε αν η κάρτα σας υποστηρίζεται. Στις Σημειώσεις Υλικού αναφέρεται
- επίσης ποιο πρόγραμμα οδήγησης υποστηρίζει την κάρτα σας.</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>Έπειτα, θα πρέπει να προσθέσετε υποστήριξη για την κάρτα ήχου σας.
- Πρέπει να γνωρίζετε από πριν ποιο πρόγραμμα οδήγησης την υποστηρίζει.
- Ελέγξτε τη λίστα των υποστηριζόμενων καρτών στις
- <link xlink:href="&rel.current.hardware;">Σημειώσεις Υλικού</link>,
- για να καθορίσετε το σωστό οδηγό για την δική σας. Για παράδειγμα,
- ή 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 xml: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>Τα μηνύματα στο σύστημα σας μπορεί να είναι διαφορετικά. Αν δεν
- δείτε συσκευές τύπου <filename>pcm</filename>, επιστρέψτε και
- ελέγξτε τα βήματα που κάνατε προηγουμένως. Κοιτάξτε το αρχείο
- ρυθμίσεων πυρήνα και βεβαιωθείτε ότι έχετε επιλέξει το σωστό πρόγραμμα
- οδήγησης. Για συνήθη προβλήματα και την αντιμετώπιση τους, δείτε το
- τμήμα <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>Άλλες εφαρμογές, όπως το <package>audio/workman</package> παρέχουν φιλικότερο περιβάλλον
- εργασίας. Ίσως θέλετε να εγκαταστήσετε μια εφαρμογή όπως το
- <package>audio/mpg123</package> για να αναπαράγετε
- αρχεία ήχου MP3.</para>
-
- <para>Ένας άλλος γρήγορος τρόπος για να ελέγξετε την κάρτα ήχου σας, είναι
- να στείλετε δεδομένα στην συσκευή <filename>/dev/dsp</filename>, όπως
- παρακάτω:</para>
-
- <screen>&prompt.user; <userinput>cat filename &gt; /dev/dsp</userinput></screen>
-
- <para>όπου το <filename>filename</filename>
- μπορεί να είναι οποιοδήποτε αρχείο. Η παραπάνω εντολή θα πρέπει να
- παράγει κάποιο ήχο (θόρυβο) επιβεβαιώνοντας τη σωστή λειτουργία της
- κάρτας ήχου.</para>
-
- <note>
- <para>Τα αρχεία συσκευών <filename>/dev/dsp*</filename> δημιουργούνται
- αυτόματα όταν χρειάζεται. Δεν υπάρχουν αν δεν χρησιμοποιούνται και
- δεν θα εμφανιστούν στην έξοδο της &man.ls.1;</para>
- </note>
-
- <para>Η ένταση ήχου της κάρτας μπορεί να αλλάξει μέσω της εντολής
- &man.mixer.8;. Περισσότερες πληροφορίες μπορείτε να βρείτε στην σελίδα
- του manual της &man.mixer.8;.</para>
-
- <sect3 xml: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=n</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 xml:id="sound-multiple-sources">
- <info><title>Χρησιμοποιώντας Πολλαπλές Πηγές Ήχου</title>
- <authorgroup>
- <author><personname><firstname>Munish</firstname><surname>Chopra</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <para>Είναι πολλές φορές επιθυμητό να έχουμε πολλαπλές πηγές ήχου που να
- αναπαράγονται ταυτόχρονα, όπως όταν για παράδειγμα το
- <application>esound</application> ή το
- <application>artsd</application> δεν επιτρέπουν κοινή χρήση της συσκευής
- ήχου σε κάποια συγκεκριμένη εφαρμογή.</para>
-
- <para>Το &os; επιτρέπει αυτή τη λειτουργία μέσω των <emphasis>Εικονικών
- Καναλιών Ήχου (Virtual Sound Channels)</emphasis>, τα οποία μπορούν να
- ενεργοποιηθούν μέσω των δυνατοτήτων που παρέχονται από το
- &man.sysctl.8;. Τα Εικονικά Κανάλια σας επιτρέπουν να πολυπλέξετε τους
- ήχους που αναπαράγει η κάρτα σας, αναμιγνύοντας τον ήχο στον πυρήνα.
- </para>
-
- <para>Για να ρυθμίσετε το πλήθος των εικονικών καναλιών, υπάρχουν τρεις
- ρυθμίσεις sysctl που μπορούν να γίνουν αν είστε ο χρήστης
- <systemitem class="username">root</systemitem>, όπως φαίνεται παρακάτω:</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> αναφέρονται στον αριθμό των
- εικονικών καναλιών που διαθέτει η συσκευή <filename>pcm0</filename>
- για αναπαραγωγή και εγγραφή, και μπορούν να ρυθμιστούν μετά την
- προσάρτηση της συσκευής. Η μεταβλητή
- <literal>hw.snd.maxautovchans</literal> είναι ο αριθμός των εικονικών
- καναλιών που παραχωρούνται σε μια νέα συσκευή ήχου όταν αυτή
- προσαρτάται μέσω της εντολής &man.kldload.8;. Καθώς το module
- <filename>pcm</filename> μπορεί να φορτωθεί ανεξάρτητα από τα
- προγράμματα οδήγησης του υλικού, το
- <varname>hw.snd.maxautovchans</varname> μπορεί να αποθηκεύσει το
- μέγιστο πλήθος των εικονικών καναλιών που θα παραχωρηθούν σε όσες
- συσκευές ήχου προσαρτηθούν αργότερα. Δείτε τη σελίδα manual
- &man.pcm.4; για περισσότερες λεπτομέρειες.</para>
-
- <note>
- <para>Δεν μπορείτε να αλλάξετε τον αριθμό των εικονικών καναλιών μιας
- συσκευής όσο αυτή είναι σε χρήση. Πρώτα κλείστε όσα προγράμματα
- χρησιμοποιούν τη συσκευή, όπως προγράμματα αναπαραγωγής μουσικής ή
- δαίμονες ήχου.</para>
- </note>
-
- <para>Η σωστή συσκευή <filename>pcm</filename> αποδίδεται αυτόματα
- και διάφανα σε κάθε πρόγραμμα που ζητά να χρησιμοποιήσει το
- <filename>/dev/dsp0</filename>.</para>
- </sect2>
-
- <sect2>
- <info><title>Ρυθμίζοντας Προεπιλεγμένες Τιμές για τα Κανάλια του Μίκτη</title>
- <authorgroup>
- <author><personname><firstname>Josef</firstname><surname>El-Rayes</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 xml:id="sound-mp3">
- <info><title>Ήχος MP3</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <para>Τα αρχεία ήχου MP3 (MPEG Layer 3 Audio) επιτυγχάνουν ποιότητα ήχου
- πολύ κοντά στο μουσικό CD, και είναι καλό να έχετε δυνατότητα
- αναπαραγωγής τους στο &os; σύστημα σας.</para>
-
- <sect2 xml: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 <package>multimedia/xmms</package> ή από
- πακέτο.</para>
-
- <para>Το περιβάλλον του <application>XMMS</application> το καθιστά
- εύκολο στη χρήση, καθώς διαθέτει λίστα αναπαραγωγής (playlist),
- γραφικό ισοσταθμιστή και άλλες λειτουργίες. Όσοι είναι εξοικειωμένοι
- με το <application>Winamp</application> θα βρουν το
- <application>XMMS</application> απλό στη χρήση του.</para>
-
- <para>Το port <package>audio/mpg123</package> είναι
- ένα εναλλακτικό πρόγραμμα αναπαραγωγής MP3 μέσω της γραμμής εντολών.
- </para>
-
- <para>Το <application>mpg123</application> μπορεί να εκτελεστεί
- καθορίζοντας τη συσκευή ήχου και το αρχείο MP3 στη γραμμή εντολών.
- Θεωρώντας ότι η συσκευή ήχου είναι το
- <filename>/dev/dsp1.0</filename> και θέλετε να αναπαράγετε το
- αρχείο <replaceable>Foobar-GreatestHits.mp3</replaceable>,
- θα χρησιμοποιήσετε την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3</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 xml:id="rip-cd">
- <title>Αποθήκευση (Rip) Αρχείων από Μουσικά CD</title>
-
- <para>Πριν κωδικοποιήσετε ένα ολόκληρο CD ή ένα κομμάτι από CD σε αρχείο
- MP3, θα πρέπει να αντιγράψετε τα μουσικά δεδομένα από το CD στο σκληρό
- σας δίσκο. Αυτό γίνεται γράφοντας τα δεδομένα τύπου CDDA (CD Digital
- Audio) σε αρχεία WAV.</para>
-
- <para>Το εργαλείο <command>cdda2wav</command>, το οποίο ανήκει στη
- συλλογή εργαλείων
- <package>sysutils/cdrtools</package> μπορεί να
- χρησιμοποιηθεί τόσο για την ανάκτηση των δεδομένων ήχου από μουσικά
- CD, όσο και πληροφοριών που σχετίζονται με αυτά.</para>
-
- <para>Έχοντας το μουσικό CD στον οδηγό, μπορείτε να χρησιμοποιήσετε την
- ακόλουθη εντολή (ως <systemitem class="username">root</systemitem>) για να αποθηκεύσετε ένα
- ολόκληρο CD σε χωριστά (ανά κομμάτι) αρχεία WAV:</para>
-
- <screen>&prompt.root; <userinput>cdda2wav -D 0,1,0 -B</userinput></screen>
-
- <para>Το <application>cdda2wav</application> υποστηρίζει οδηγούς CDROM
- τύπου ATAPI (IDE). Για να διαβάσετε δεδομένα από μια συσκευή IDE,
- χρησιμοποιήστε το όνομα συσκευής αντί για τον αριθμό μονάδας SCSI. Για
- παράδειγμα, για να αποθηκεύσετε το κομμάτι 7 από ένα οδηγό IDE:</para>
- <screen>&prompt.root; <userinput>cdda2wav -D /dev/acd0 -t 7</userinput></screen>
-
- <para>Το <option>-D <replaceable>0,1,0</replaceable></option>
- δείχνει τη συσκευή SCSI <filename>0,1,0</filename>,
- που αντιστοιχεί στην έξοδο της εντολής <command>cdrecord
- -scanbus</command>.</para>
-
- <para>Για να διαβάσετε μεμονωμένα κομμάτια, χρησιμοποιήστε την επιλογή
- <option>-t</option> όπως φαίνεται παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>cdda2wav -D 0,1,0 -t 7</userinput></screen>
-
- <para>Το παράδειγμα αυτό διαβάζει το κομμάτι επτά του μουσικού CD. Για
- να διαβάσετε μια σειρά από κομμάτια, για παράδειγμα από το ένα ως το
- επτά, καθορίστε μια περιοχή:</para>
-
- <screen>&prompt.root; <userinput>cdda2wav -D 0,1,0 -t 1+7</userinput></screen>
-
- <para>Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
- &man.dd.1; για να διαβάσετε μουσικά κομμάτια από οδηγούς ATAPI.
- Διαβάστε το <xref linkend="duplicating-audiocds"/> για περισσότερες
- πληροφορίες σχετικά με αυτή τη δυνατότητα.</para>
-
- </sect2>
-
- <sect2 xml:id="mp3-encoding">
- <title>Κωδικοποιώντας MP3</title>
-
- <para>Στις μέρες μας, το προτιμώμενο πρόγραμμα κωδικοποίησης είναι το
- <application>Lame</application>.
- Μπορείτε να το βρείτε στη συλλογή των ports, στο
- <package>audio/lame</package>.</para>
-
- <para>Χρησιμοποιώντας τα αρχεία WAV που έχετε αποθηκεύσει, μπορείτε να
- μετατρέψετε το αρχείο
- <filename>audio01.wav</filename> σε
- <filename>audio01.mp3</filename> με την
- εντολή:</para>
-
- <screen>&prompt.root; <userinput>lame -h -b 128 \
---tt "Foo Song Title" \
---ta "FooBar Artist" \
---tl "FooBar Album" \
---ty "2001" \
---tc "Ripped and encoded by Foo" \
---tg "Genre" \
-audio01.wav audio01.mp3</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 xml: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 audio01.mp3
- &gt; audio01.pcm</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 <package>audio/sox</package> ή το αντίστοιχο
- πακέτο):</para>
-
- <screen>&prompt.user; <userinput>sox -t wav -r 44100 -s -w -c 2 track.wav track.raw</userinput></screen>
-
- <para>Διαβάστε το <xref linkend="creating-cds"/> για περισσότερες
- πληροφορίες σχετικά με τη χρήση CD εγγραφής στο &os;</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="video-playback">
- <info><title>Αναπαραγωγή Video</title>
- <authorgroup>
- <author><personname><firstname>Ross</firstname><surname>Lippert</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <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 xml: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 xml: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 xml: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 μπορεί να βρεθεί στο
- <package>devel/sdl12</package>.</para>
-
- </sect3>
-
- <sect3 xml:id="video-interface-DGA">
- <title>Το Επίπεδο Direct Graphics Access</title>
-
- <para>Το Direct Graphics Access είναι μια επέκταση του X11 που επιτρέπει
- σε ένα πρόγραμμα να προσπεράσει τον X server και να αλλάξει απευθείας
- τα περιεχόμενα του framebuffer (μνήμης γραφικών). Δεδομένου ότι
- βασίζεται σε διαχείριση μνήμης χαμηλού επιπέδου, τα προγράμματα που το
- χρησιμοποιούν πρέπει να εκτελούνται ως <systemitem class="username">root</systemitem>.</para>
-
- <para>Η επέκταση DGA μπορεί να ελεγχθεί και να μετρηθεί ως προς την
- απόδοση της με το πρόγραμμα &man.dga.1;. Όταν εκτελείται η εντολή
- <command>dga</command>, αλλάζει τα χρώματα της οθόνης σε κάθε πίεση
- ενός πλήκτρου. Για να ακυρώσετε την εκτέλεση, πιέστε <keycap>q</keycap>.
- </para>
-
- </sect3>
-
- </sect2>
-
- <sect2 xml: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>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 xml:id="video-mplayer">
- <title>MPlayer</title>
-
- <para>Ο <application>MPlayer</application> είναι μια εφαρμογή
- αναπαραγωγής video που αναπτύχθηκε πρόσφατα και εξελίσσεται ταχύτατα.
- Οι στόχοι της ομάδας ανάπτυξης του <application>MPlayer</application>
- είναι η ταχύτητα και η ευελιξία στο Linux και στα άλλα Unix. Η
- δημιουργία του ξεκίνησε όταν ο αρχηγός της ομάδας ανάπτυξης κουράστηκε
- να αντιμετωπίζει τα προβλήματα αναπαραγωγής των μέχρι τότε διαθέσιμων
- προγραμμάτων. Κάποιοι υποστηρίζουν ότι το γραφικό περιβάλλον
- θυσιάστηκε για να δημιουργηθεί μια ομοιόμορφη σχεδίαση. Ωστόσο, μόλις
- συνηθίσετε τις επιλογές που δίνονται από τη γραμμή εντολών και τα
- αντίστοιχα πλήκτρα, θα μπορέσετε να τον χρησιμοποιήσετε αρκετά καλά.
- </para>
-
- <sect4 xml:id="video-mplayer-building">
- <title>Μεταγλώττιση του MPlayer</title>
- <indexterm><primary>MPlayer</primary>
- <secondary>making</secondary></indexterm>
-
- <para>Ο <application>MPlayer</application> βρίσκεται στο <package>multimedia/mplayer</package>.
- Ο <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, θα πρέπει να καθορίσετε την επιλογή
- <varname>WITH_XVID</varname> στην γραμμή εντολών. Μπορείτε επίσης
- να ορίσετε την προεπιλεγμένη συσκευή DVD χρησιμοποιώντας την επιλογή
- <varname>WITH_DVD_DEVICE</varname>, διαφορετικά θα χρησιμοποιηθεί η
- προεπιλεγμένη συσκευή <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 xml: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>testfile.avi</filename>,
- μέσω ενός από τα αρκετά video interfaces χρησιμοποιήστε την επιλογή
- <option>-vo</option>:</para>
-
- <screen>&prompt.user; <userinput>mplayer -vo xv testfile.avi</userinput></screen>
- <screen>&prompt.user; <userinput>mplayer -vo sdl testfile.avi</userinput></screen>
- <screen>&prompt.user; <userinput>mplayer -vo x11 testfile.avi</userinput></screen>
- <screen>&prompt.root; <userinput>mplayer -vo dga testfile.avi</userinput></screen>
- <screen>&prompt.root; <userinput>mplayer -vo 'sdl:dga' testfile.avi</userinput></screen>
-
- <para>Αξίζει τον κόπο να δοκιμάσετε όλες αυτές τις επιλογές, καθώς η
- απόδοση τους εξαρτάται από πολλούς παράγοντες και διαφοροποιείται
- αρκετά ανάλογα με το υλικό του υπολογιστή σας.</para>
-
- <para>Για αναπαραγωγή από DVD, αντικαταστήστε το
- <filename>testfile.avi</filename> με
- <option>dvd://<replaceable>N</replaceable> -dvd-device
- <replaceable>DEVICE</replaceable></option> όπου το
- <replaceable>N</replaceable> είναι ο αριθμός του τίτλου
- (title number) που επιθυμείτε να αναπαράγετε και
- <filename>DEVICE</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 μέσω της επιλογής <varname>WITH_DVD_DEVICE</varname>. Από
- προεπιλογή, η συσκευή αυτή είναι η <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 xml: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 input.avi -oac copy -ovc copy -o output.avi</userinput></screen>
-
- <para>Λανθασμένοι συνδυασμοί στη γραμμή εντολών, μπορεί να δώσουν
- αρχεία εξόδου τα οποία δεν μπορεί να αναπαράγει ούτε ο ίδιος ο
- <command>mplayer</command>. Έτσι, αν απλώς θέλετε να κάνετε rip
- ένα αρχείο, μείνετε στην επιλογή <option>-dumpfile</option> του
- <command>mplayer</command>.</para>
-
- <para>Για να μετατρέψετε το
- <filename>input.avi</filename> σε codec
- MPEG4 με ήχο MPEG3 (απαιτείται το <package>audio/lame</package>):</para>
-
- <screen>&prompt.user; <userinput>mencoder input.avi -oac mp3lame -lameopts br=192 \
- -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi</userinput></screen>
-
- <para>Με τον τρόπο αυτό παράγεται έξοδος που μπορεί να αναπαραχθεί
- από τον <command>mplayer</command> και το <command>xine</command>.
- </para>
-
- <para>Μπορείτε να αντικαταστήσετε το
- <filename>input.avi</filename>
- με την επιλογή <option>dvd://1 -dvd-device /dev/dvd</option> και
- να το εκτελέσετε ως <systemitem class="username">root</systemitem> για να
- επανακωδικοποιήσετε απευθείας ένα τίτλο DVD. Μια και πιθανώς
- δεν θα μείνετε ικανοποιημένος με το αποτέλεσμα από την πρώτη φορά,
- σας συνιστούμε να κατεβάσετε τον τίτλο σε ένα αρχείο
- και να δουλέψετε σε αυτό.</para>
- </sect4>
-
- </sect3>
-
- <sect3 xml:id="video-xine">
- <title>Το Πρόγραμμα Αναπαραγωγής xine</title>
-
- <para>Το <application>xine</application> είναι ένα project με ευρύ
- σκοπό, το οποίο προορίζεται όχι μόνο να γίνει ένα πρόγραμμα όλα
- σε ένα όσο αφορά το video, αλλά επίσης στο να παράγει μια
- επαναχρησιμοποιήσιμη βασική βιβλιοθήκη και ένα αρθρωτό εκτελέσιμο το
- οποίο μπορεί να επεκταθεί με πρόσθετα (plugins). Μπορείτε να το
- εγκαταστήσετε τόσο από πακέτο, όσο και από το port, <package>multimedia/xine</package>.</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 mymovie.avi</userinput></screen>
-
- </sect3>
-
- <sect3 xml:id="video-ports-transcode">
- <title>Τα Βοηθητικά Προγράμματα transcode</title>
-
- <para>Η εφαρμογή <application>transcode</application> δεν είναι πρόγραμμα
- αναπαραγωγής, αλλά μια σουίτα εργαλείων για επανακωδικοποίηση αρχείων
- video και ήχου. Με την εφαρμογή <application>transcode</application>,
- έχετε την δυνατότητα να αναμίξετε αρχεία video, να επισκευάσετε
- χαλασμένα αρχεία, χρησιμοποιώντας εργαλεία της γραμμής εντολών τα οποία
- χειρίζονται δεδομένα από τα κανάλια <filename>stdin/stdout</filename>.
- </para>
-
- <para>Μεγάλο πλήθος εφαρμογών μπορούν να καθοριστούν κατά τη διάρκεια της
- μεταγλώττισης του port
- <package>multimedia/transcode</package> και συνιστούμε
- την ακόλουθη γραμμή εντολών για τη μεταγλώττιση του
- <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 input.avi -V --export_prof vcd-pal -o output_vcd</userinput>
-&prompt.user; <userinput>mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa</userinput></screen>
-
- <para>Το αρχείο MPEG που προκύπτει, το
- <filename>output_vcd.mpg</filename>,
- μπορεί να αναπαραχθεί από τον
- <application>MPlayer</application>. Μπορείτε επίσης να γράψετε το
- αρχείο σε ένα CD-R για να δημιουργήσετε ένα Video CD, και στην περίπτωση
- αυτή θα χρειαστεί να εγκαταστήσετε τα προγράμματα
- <package>multimedia/vcdimager</package> και
- <package>sysutils/cdrdao</package>.</para>
-
- <para>Υπάρχει σελίδα manual για το <command>transcode</command>, αλλά
- πρέπει επίσης να συμβουλευτείτε το
- <link xlink:href="http://www.transcoding.org/cgi-bin/transcode">transcode
- wiki</link> για περισσότερες πληροφορίες και παραδείγματα.</para>
- </sect3>
-
- </sect2>
-
- <sect2 xml:id="video-further-reading">
- <title>Επιπλέον Διάβασμα</title>
-
- <para>Υπάρχει ραγδαία εξέλιξη στα διαθέσιμα πακέτα video για το &os;.
- Είναι αρκετά πιθανό ότι στο άμεσο μέλλον πολλά από τα προβλήματα που
- αναφέρονται εδώ θα έχουν επιλυθεί. Στο ενδιάμεσο διάστημα, όσοι
- ενδιαφέρονται να χρησιμοποιήσουν τις δυνατότητες A/V του &os; στο έπακρο
- θα πρέπει να συνδυάσουν γνώσεις από διάφορα FAQ και tutorials και να
- χρησιμοποιήσουν αρκετές διαφορετικές εφαρμογές. Το τμήμα αυτό υπάρχει
- ακριβώς για να δείξει στον αναγνώστη που μπορεί να βρει τέτοιες
- πρόσθετες πληροφορίες.</para>
-
- <para>Η
- <link xlink:href="http://www.mplayerhq.hu/DOCS/">Τεκμηρίωση του Mplayer
- </link> είναι αρκετά πληροφοριακή όσο αφορά το τεχνικό επίπεδο.
- Αν έχετε σκοπό να αποκτήσετε υψηλό ποσοστό εμπειρίας σε σχέση με το
- video στο &unix;, θα πρέπει οπωσδήποτε να την συμβουλευτείτε. Η λίστα
- αλληλογραφίας του <application>MPlayer</application> είναι εχθρική σε
- όποιον δεν έχει κάνει τον κόπο να διαβάσει την τεκμηρίωση, έτσι αν
- σκοπεύετε να κάνετε αναφορές σφαλμάτων, βεβαιωθείτε ότι την έχετε
- διαβάσει.</para>
-
- <para>Το
- <link xlink:href="http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html">
- xine HOWTO</link>
- περιέχει ένα κεφάλαιο σχετικά με την βελτίωση της απόδοσης, το οποίο
- είναι κοινό για όλα τα προγράμματα αναπαραγωγής.</para>
-
- <para>Τέλος, υπάρχουν κάποιες άλλες πολλά υποσχόμενες εφαρμογές που ίσως
- επιθυμείτε να δοκιμάσετε:</para>
-
- <itemizedlist>
-
- <listitem>
- <para>Το <link xlink:href="http://avifile.sourceforge.net/">Avifile</link> το οποίο
- είναι επίσης port,
- <package>multimedia/avifile</package>.</para>
- </listitem>
-
- <listitem>
- <para>Το <link xlink:href="http://www.dtek.chalmers.se/groups/dvd/">Ogle</link>
- το οποίο είναι επίσης port,
- <package>multimedia/ogle</package>.</para>
- </listitem>
-
- <listitem>
- <para>Το <link xlink:href="http://xtheater.sourceforge.net/">Xtheater</link></para>
- </listitem>
-
- <listitem>
- <para>Το <package>multimedia/dvdauthor</package>, το οποίο είναι
- εφαρμογή DVD authoring ανοικτού κώδικα.</para>
- </listitem>
-
- </itemizedlist>
-
- </sect2>
- </sect1>
-
- <sect1 xml:id="tvcard">
- <info><title>Ρύθμιση Κάρτας Τηλεόρασης</title>
- <authorgroup>
- <author><personname><firstname>Josef</firstname><surname>El-Rayes</surname></personname><contrib>Αρχική συνεισφορά από τον </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Βελτιώθηκε και προσαρμόστηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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>Το <package>multimedia/fxtv</package>
- παρέχει δυνατότητα να δείτε τηλεόραση σε παράθυρο, καθώς και
- την δυνατότητα σύλληψης εικόνας / ήχου / video.</para>
- </listitem>
- <listitem>
- <para>Το <package>multimedia/xawtv</package>
- είναι επίσης εφαρμογή τηλεόρασης, με δυνατότητες όμοιες με το
- <application>fxtv</application>.</para>
- </listitem>
- <listitem>
- <para>Το <package>misc/alevt</package>
- αποκωδικοποιεί και απεικονίζει Videotext/Teletext.</para>
- </listitem>
- <listitem>
- <para>Το <package>audio/xmradio</package> είναι μια
- εφαρμογή για να χρησιμοποιήσετε το δέκτη FM που είναι
- ενσωματωμένος σε κάποιες κάρτες τηλεόρασης.</para>
- </listitem>
- <listitem>
- <para>Το <package>audio/wmtune</package> είναι μια
- βολική desktop εφαρμογή για ραδιοφωνικούς δέκτες.</para>
- </listitem>
- </itemizedlist>
-
- <para>Μπορείτε να βρείτε περισσότερες εφαρμογές στη συλλογή των Ports
- του &os;.</para>
- </sect2>
-
- <sect2>
- <title>Αντιμετώπιση Προβλημάτων</title>
-
- <para>Αν αντιμετωπίσετε κάποιο πρόβλημα με την κάρτα τηλεόρασης, θα
- πρέπει πρώτα να ελέγξετε αν το ολοκληρωμένο σύλληψης video καθώς και
- ο δέκτης υποστηρίζονται από το πρόγραμμα οδήγησης &man.bktr.4; και
- αν έχετε χρησιμοποιήσει τις σωστές ρυθμίσεις στις επιλογές σας. Για
- επιπλέον υποστήριξη καθώς και διάφορες ερωτήσεις σχετικά με την κάρτα
- σας, ίσως θέλετε να επικοινωνήσετε με τη λίστα &a.multimedia.name; και
- να διαβάσετε τις παλιότερες δημοσιεύσεις από τα αρχεία της λίστας.
- </para>
- </sect2>
- </sect1>
-
- <sect1 xml: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> που
- υποστηρίζονται από το <package>multimedia/webcamd</package> καθώς το
- <application>webcamd</application> παρέχει μια εφαρμογή χρήστη για
- το <acronym role="Video for Linux">V4L</acronym>. Οποιαδήποτε κάρτα
- <acronym role="Digital Video Broadcasting">DVB</acronym> που
- υποστηρίζεται από το <application>webcamd</application> θα πρέπει
- φυσιολογικά να λειτουργεί με το MythTV. Μπορείτε ωστόσο να βρείτε
- <link xlink:href="http://wiki.freebsd.org/WebcamCompat">εδώ</link> μια
- λίστα με δοκιμάσμενες κάρτες. Για κάρτες τις Hauppauge μπορείτε
- να βρείτε προγράμματα οδήγησης στα πακέτα
- <package>multimedia/pvr250</package>
- και <package>multimedia/pvrxxx</package>, αλλά
- να έχετε υπόψη σας ότι χρησιμοποιούν μια μη-τυποποιημένη διεπαφή
- η οποία δεν λειτουργεί με εκδόσεις του MythTV μεταγενέστερες της
- 0.23.</para>
-
- <para>Το <link xlink:href="http://wiki.freebsd.org/HTPC">HTPC</link>
- περιέχει μια λίστα όλων των διαθέσιμων προγραμμάτων οδήγησης
- <acronym role="Digital Video Broadcasting">DVB</acronym>.</para>
- </sect2>
-
- <sect2>
- <title>Εξαρτήσεις</title>
-
- <para>Καθώς το MythTV είναι ευέλικτο και αρθρωτό, επιτρέπει στο
- χρήστη να έχει το frontend και το backend σε διαφορετικά
- μηχανήματα.</para>
-
- <para>Για το frontend, απαιτείται το <package>multimedia/mythtv-frontend</package> και ο
- εξυπηρετητής X τον οποίο μπορείτε να βρείτε στο <package>x11/xorg</package>. Ιδανικά, ο υπολογιστής που
- θα εκτελεί το frontend θα πρέπει επίσης να έχει μια κάρτα γραφικών
- η οποία να υποστηρίζει <acronym role="X-Video Motion Compensation">XvMC</acronym> και προαιρετικά
- ένα τηλεχειριστήριο συμβατό με <acronym role="Linux Infrared Remote Control">LIRC</acronym>.</para>
-
- <para>Για το backend, χρειάζεται το <package>multimedia/mythtv</package> όπως και μια βάση
- δεδομένων &mysql; και προαιρετικά ένας δέκτης και αποθηκευτικός
- χώρος για εγγραφές. Το πακέτο για την &mysql; θα πρέπει να
- εγκατασταθεί αυτόματα ως εξάρτηση κατά την εγκατάσταση του
- <package>multimedia/mythtv</package>.</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 &lt; /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"' &gt;&gt; /etc/rc.conf</userinput>
-&prompt.root; <userinput>/usr/local/etc/rc.d/mythbackend start</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml:id="scanners">
- <info><title>Σαρωτές Εικόνας</title>
- <authorgroup>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname><contrib>Γράφηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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> διαθέτει μια λίστα <link xlink:href="http://www.sane-project.org/sane-supported-devices.html">
- υποστηριζόμενων συσκευών</link> η οποία παρέχει πληροφορίες για την
- υποστήριξη κάθε σαρωτή και την εξέλιξη της. Σε συστήματα πριν το
- &os;&nbsp;8.X θα βρείτε επίσης τη λίστα των υποστηριζόμενων USB
- σαρωτών στη σελίδα manual του &man.uscanner.4;.</para>
- </sect2>
-
- <sect2>
- <title>Ρύθμιση του Πυρήνα</title>
-
- <para>Όπως είπαμε παραπάνω, υποστηρίζονται σαρωτές τόσο SCSI όσο και
- USB. Ανάλογα με το τρόπο διασύνδεσης του σαρωτή σας, θα χρειαστείτε
- διαφορετικούς οδηγούς συσκευών.</para>
-
- <sect3 xml: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
- (<package>graphics/sane-backends</package>) και στο
- frontend
- (<package>graphics/sane-frontends</package>). Το
- backend παρέχει πρόσβαση στον ίδιο το σαρωτή. Στη λίστα
- <link xlink:href="http://www.sane-project.org/sane-supported-devices.html">
- υποστηριζόμενων συσκευών</link> του <application>SANE</application>
- μπορείτε να βρείτε ποιο backend υποστηρίζει τον σαρωτή σας. Είναι
- υποχρεωτικό να βρείτε το σωστό backend για να μπορέσετε να
- χρησιμοποιήσετε το σαρωτή σας. Το τμήμα του frontend παρέχει το
- γραφικό περιβάλλον εργασίας για τη σάρωση
- (<application>xscanimage</application>).</para>
-
- <para>Το πρώτο βήμα είναι να εγκαταστήσετε το port ή το πακέτο
- <package>graphics/sane-backends</package>. Μετά
- χρησιμοποιήστε την εντολή <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>/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>
- (<package>graphics/sane-frontends</package>).</para>
-
- <para>Το <application>Xsane</application> (<package>graphics/xsane</package>) είναι επίσης ένα δημοφιλές
- frontend πρόγραμμα σάρωσης. To frontend αυτό προσφέρει προχωρημένες
- δυνατότητες, όπως διαφορετικούς τρόπους σάρωσης (φωτοτυπία, fax, κλπ)
- διόρθωση χρωμάτων, πολλαπλή σάρωση κ.α. Και οι δύο αυτές εφαρμογές
- διατίθενται επίσης σαν πρόσθετο (plugin) πρόγραμμα για χρήση με το
- <application>GIMP</application>.</para>
- </sect2>
-
- <sect2>
- <title>Δίνοντας σε Άλλους Χρήστες Πρόσβαση στο Σαρωτή σας</title>
-
- <para>Όλες οι παραπάνω λειτουργίες έγιναν με τα προνόμια του χρήστη
- <systemitem class="username">root</systemitem>. Μπορεί ωστόσο, να θέλετε να δώσετε πρόσβαση
- στο σαρωτή σας και σε άλλους χρήστες. Ο χρήστης χρειάζεται άδεια
- ανάγνωσης και εγγραφής στο αρχείο συσκευής που χρησιμοποιείται από το
- σαρωτή. Σαν παράδειγμα, ο σαρωτής μας χρησιμοποιεί το αρχείο συσκευής
- <filename>/dev/ugen0.2</filename> το οποίο στην πραγματικότητα είναι
- ένας συμβολικός δεσμός προς το πραγματικό αρχείο συσκευής, το
- <filename>/dev/usb/0.2.0</filename> (μπορείτε να το επιβεβαιώσετε
- εύκολα με μια ματιά στον κατάλογο <filename>/dev</filename>). Τόσο ο συμβολικός δεσμός όσο
- και το αρχείο συσκευής ανήκουν στις ομάδες
- <systemitem class="groupname">wheel</systemitem> και <systemitem class="groupname">operator</systemitem>.
- Αν προσθέσουμε το χρήστη
- <systemitem class="username"><replaceable>joe</replaceable></systemitem> σε αυτές τις
- ομάδες, θα μπορεί να χρησιμοποιήσει το σαρωτή. Για λόγους ασφαλείας
- όμως θα πρέπει να είμαστε ιδιαίτερα προσεκτικοί όταν προσθέτουμε
- ένα χρήστη σε μια ομάδα, ειδικά αν πρόκειται για την
- <systemitem class="groupname">wheel</systemitem>. Μια καλύτερη λύση θα ήταν να
- δημιουργήσουμε μια ομάδα ειδικά για τη χρήση των συσκευών
- USB, και να επιτρέψουμε πρόσβαση στον σαρωτή στα μέλη της ομάδας
- αυτής.</para>
-
- <para>Για παράδειγμα, θα χρησιμοποιήσουμε μια ομάδα με το όνομα
- <systemitem class="groupname"><replaceable>usb</replaceable></systemitem>. Το πρώτο
- βήμα είναι η δημιουργία αυτής της ομάδας με τη βοήθεια της εντολής
- &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> ώστε να είναι προσβάσιμα από
- την ομάδα <systemitem class="groupname">usb</systemitem> με δυνατότητα εγγραφής
- (δικαιώματα <literal>0660</literal> ή <literal>0664</literal>).
- Από προεπιλογή, μόνο ο ιδιοκτήτης αυτών των αρχείων
- (ο <systemitem class="username">root</systemitem>) έχει τα απαραίτητα δικαιώματα εγγραφής.
- Όλα τα παραπάνω μπορούν να γίνουν με τις παρακάτω γραμμές στο αρχείο
- <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
- σαρωτή σε κάποιο χρήστη, αρκεί να προσθέσετε το λογαριασμό του στην
- ομάδα <systemitem class="groupname"><replaceable>usb</replaceable></systemitem>:</para>
-
- <screen>&prompt.root; <userinput>pw groupmod usb -m joe</userinput></screen>
-
- <para>Για περισσότερες λεπτομέρειες, διαβάστε τη σελίδα manual του
- &man.pw.8;.</para>
- </sect2>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml b/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml
deleted file mode 100644
index 188304dc37..0000000000
--- a/el_GR.ISO8859-7/books/handbook/network-servers/chapter.xml
+++ /dev/null
@@ -1,4758 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εξυπηρετητές Δικτύου
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/network-servers/chapter.xml
- %SRCID% 1.1
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="network-servers">
- <info><title>Εξυπηρετητές Δικτύου</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Αναδιοργανώθηκε από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 xml:id="network-inetd">
- <info><title>The <application>inetd</application> <quote>Super-Server</quote></title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><othername>The &os; Documentation Project</othername></personname><contrib>Updated for &os; 6.1-RELEASE by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect2 xml: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 xml: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 xml: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 xml: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 xml: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
- <systemitem class="username">root</systemitem> user. For security purposes, it is
- common to find some servers running as the
- <systemitem class="username">daemon</systemitem> user, or the least privileged
- <systemitem class="username">nobody</systemitem> 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 xml: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 xml: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 xml:id="network-nfs">
- <info><title>Network File System (NFS)</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Reorganized and enhanced by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Swingle</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 xml: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
- <systemitem class="username">root</systemitem> user on the remote system to write
- data on the exported file system as <systemitem class="username">root</systemitem>.
- If the <literal>-maproot=root</literal> flag is not specified,
- then even if a user has <systemitem class="username">root</systemitem> 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, <systemitem>client</systemitem>.
- 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 <systemitem class="username">root</systemitem>
- 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 <systemitem>server</systemitem> and the client's
- name will be <systemitem>client</systemitem>. If you only want to
- temporarily mount a remote file system or would rather test the
- configuration, just execute a command like this as <systemitem class="username">root</systemitem> 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 xml:id="network-amd">
- <info><title>Automatic Mounts with <application>amd</application></title>
- <authorgroup>
- <author><personname><firstname>Wylie</firstname><surname>Stilwell</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Rewritten by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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
- <systemitem>foobar</systemitem>.</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 <systemitem>foobar</systemitem>, 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 <systemitem>foobar</systemitem> 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 xml:id="network-nfs-integration">
- <info><title>Problems Integrating with Other Systems</title>
- <authorgroup>
- <author><personname><firstname>John</firstname><surname>Lind</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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, <systemitem>fastws</systemitem> is the host
- (interface) name of a high-performance workstation, and
- <systemitem>freebox</systemitem> 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 (<systemitem>freebox</systemitem>)
- as the client in <filename>/etc/fstab</filename> on
- <systemitem>freebox</systemitem>:</para>
-
- <programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
-
- <para>As a manual mount command on <systemitem>freebox</systemitem>:</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
- <systemitem>fastws</systemitem>:</para>
-
- <programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
-
- <para>As a manual mount command on <systemitem>fastws</systemitem>:</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 xml:id="network-nis">
- <info><title>Network Information System (NIS/YP)</title>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Swingle</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Eric</firstname><surname>Ogren</surname></personname><contrib>Enhanced by </contrib></author>
- <author><personname><firstname>Udo</firstname><surname>Erdelhoff</surname></personname></author>
- </authorgroup>
- </info>
-
-
- <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>
- <listitem>
- <para>A <emphasis>NIS master server</emphasis><indexterm><primary>NIS</primary><secondary>master server</secondary></indexterm>. 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>
-
- <listitem>
- <para><emphasis>NIS slave servers</emphasis><indexterm><primary>NIS</primary><secondary>slave server</secondary></indexterm>. 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>
-
- <listitem>
- <para><emphasis>NIS clients</emphasis><indexterm><primary>NIS</primary><secondary>client</secondary></indexterm>. 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><systemitem>ellington</systemitem></entry>
- <entry><systemitem class="ipaddress">10.0.0.2</systemitem></entry>
- <entry>NIS master</entry>
- </row>
- <row>
- <entry><systemitem>coltrane</systemitem></entry>
- <entry><systemitem class="ipaddress">10.0.0.3</systemitem></entry>
- <entry>NIS slave</entry>
- </row>
- <row>
- <entry><systemitem>basie</systemitem></entry>
- <entry><systemitem class="ipaddress">10.0.0.4</systemitem></entry>
- <entry>Faculty workstation</entry>
- </row>
- <row>
- <entry><systemitem>bird</systemitem></entry>
- <entry><systemitem class="ipaddress">10.0.0.5</systemitem></entry>
- <entry>Client machine</entry>
- </row>
- <row>
- <entry><systemitem>cli[1-11]</systemitem></entry>
- <entry><systemitem class="ipaddress">10.0.0.[6-17]</systemitem></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 <systemitem class="username">root</systemitem> 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 (<systemitem class="username">bin</systemitem>,
- <systemitem class="username">tty</systemitem>, <systemitem class="username">kmem</systemitem>,
- <systemitem class="username">games</systemitem>, etc), as well as any accounts
- that you do not want to be propagated to the NIS clients
- (for example <systemitem class="username">root</systemitem> 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
- <systemitem class="groupname">wheel</systemitem>. If there is something
- wrong with NIS, this account can be used to log in
- remotely, become <systemitem class="username">root</systemitem>, 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 <systemitem>basie</systemitem> 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>-username</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
- <systemitem class="username">bill</systemitem> from logging on to
- <systemitem>basie</systemitem> 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 &amp;:/:/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 xml:id="network-netgroups">
- <info><title>Using Netgroups</title>
- <authorgroup>
- <author><personname><firstname>Udo</firstname><surname>Erdelhoff</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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><systemitem class="username">alpha</systemitem>, <systemitem class="username">beta</systemitem></entry>
- <entry>Normal employees of the IT department</entry>
- </row>
-
- <row>
- <entry><systemitem class="username">charlie</systemitem>, <systemitem class="username">delta</systemitem></entry>
- <entry>The new apprentices of the IT department</entry>
- </row>
-
- <row>
- <entry><systemitem class="username">echo</systemitem>, <systemitem class="username">foxtrott</systemitem>, <systemitem class="username">golf</systemitem>, ...</entry>
- <entry>Ordinary employees</entry>
- </row>
-
- <row>
- <entry><systemitem class="username">able</systemitem>, <systemitem class="username">baker</systemitem>, ...</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><systemitem>war</systemitem>, <systemitem>death</systemitem>,
- <systemitem>famine</systemitem>,
- <systemitem>pollution</systemitem></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><systemitem>pride</systemitem>, <systemitem>greed</systemitem>,
- <systemitem>envy</systemitem>, <systemitem>wrath</systemitem>,
- <systemitem>lust</systemitem>, <systemitem>sloth</systemitem></entry>
- <entry>Less important servers. All members of the IT
- department are allowed to login onto these
- machines.</entry>
- </row>
-
- <row>
- <entry><systemitem>one</systemitem>, <systemitem>two</systemitem>,
- <systemitem>three</systemitem>, <systemitem>four</systemitem>,
- ...</entry>
-
- <entry>Ordinary workstations. Only the
- <emphasis>real</emphasis> employees are allowed to use
- these machines.</entry>
- </row>
-
- <row>
- <entry><systemitem>trashcan</systemitem></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>-user</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
- <systemitem>war</systemitem>, 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
- <systemitem>war</systemitem>'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
- ~user</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
- <systemitem class="username">jsmith</systemitem> 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 xml: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
- <systemitem class="username">root</systemitem>:</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 xml:id="network-dhcp">
- <info><title>Automatic Network Configuration (DHCP)</title>
- <authorgroup>
- <author><personname><firstname>Greg</firstname><surname>Sutter</surname></personname><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 <package>net/isc-dhcp3-server</package> 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 <filename>bpf</filename>
- 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
- <filename>bpf</filename> 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 <filename>bpf</filename>
- is also the device that allows packet sniffers to work
- correctly (although they still have to be run as
- <systemitem class="username">root</systemitem>). <filename>bpf</filename>
- <emphasis>is</emphasis> required to use DHCP, but if
- you are very sensitive about security, you probably
- should not add <filename>bpf</filename> 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 <package>net/isc-dhcp3-server</package> 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
- <link xlink:href="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</link>.
- An informational resource has also been set up at
- <uri xlink:href="http://www.dhcp.org/">http://www.dhcp.org/</uri>.</para>
- </sect2>
-
- <sect2 xml: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
- <package>net/isc-dhcp3-server</package>
- 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 <filename>bpf</filename> 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 <filename>bpf</filename>
- is also the device that allows packet sniffers to work
- correctly (although such programs still need privileged
- access). <filename>bpf</filename>
- <emphasis>is</emphasis> required to use DHCP, but if
- you are very sensitive about security, you probably
- should not include <filename>bpf</filename> 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
- <package>net/isc-dhcp3-server</package> 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 xml:id="domain-name"/>
-option domain-name-servers 192.168.4.100;<co xml:id="domain-name-servers"/>
-option subnet-mask 255.255.255.0;<co xml:id="subnet-mask"/>
-
-default-lease-time 3600;<co xml:id="default-lease-time"/>
-max-lease-time 86400;<co xml:id="max-lease-time"/>
-ddns-update-style none;<co xml:id="ddns-update-style"/>
-
-subnet 192.168.4.0 netmask 255.255.255.0 {
- range 192.168.4.129 192.168.4.254;<co xml:id="range"/>
- option routers 192.168.4.1;<co xml:id="routers"/>
-}
-
-host mailhost {
- hardware ethernet 02:03:04:05:06:07;<co xml:id="hardware"/>
- fixed-address mailhost.example.com;<co xml: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 <package>net/isc-dhcp3-relay</package> port. The
- &man.dhcrelay.8; manual page provided with the
- port contains more detail.</para>
- </listitem>
- </itemizedlist>
- </sect3>
-
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="network-dns">
- <info><title>Domain Name System (<acronym>DNS</acronym>)</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
-
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname></author>
-
- <author><personname><firstname>Daniel</firstname><surname>Gerzo</surname></personname></author>
- </authorgroup>
- </info>
-
-
- <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 <systemitem class="fqdomainname">www.FreeBSD.org</systemitem> will
- receive a reply with the <acronym>IP</acronym> address of The
- &os; Project's web server, whereas, a query for <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem> 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
- <uri xlink:href="http://www.isc.org/">http://www.isc.org/</uri>.</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><systemitem>.</systemitem> is the root zone.</para>
- </listitem>
-
- <listitem>
- <para><systemitem>org.</systemitem> is a Top Level Domain
- (<acronym>TLD</acronym>) under the root zone.</para>
- </listitem>
-
- <listitem>
- <para><systemitem class="fqdomainname">example.org.</systemitem> is a
- zone under the <systemitem>org.</systemitem>
- <acronym>TLD</acronym>.</para>
- </listitem>
-
- <listitem>
- <para><systemitem>1.168.192.in-addr.arpa</systemitem> is a zone
- referencing all <acronym>IP</acronym> addresses which fall
- under the <systemitem class="ipaddress">192.168.1.*</systemitem>
- <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, <systemitem class="fqdomainname">example.org.</systemitem> is more specific than
- <systemitem>org.</systemitem>, as <systemitem>org.</systemitem> is more specific
- than the root zone. The layout of each part of a hostname is
- much like a file system: the
- <filename>/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 <systemitem class="fqdomainname">example.org</systemitem>, 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 <systemitem class="fqdomainname">www.FreeBSD.org</systemitem>, 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>/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>master</filename>, <filename>slave</filename>, or <filename>dynamic</filename> subdirectories of the
- <filename>/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_*</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>/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>/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>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><systemitem class="ipaddress">127.0.0.1</systemitem> 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
- <systemitem class="fqdomainname">example.org</systemitem> 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 <systemitem class="fqdomainname">example.org</systemitem> (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.origin</literal>.
- In our fictitious zone file, our origin is
- <systemitem>example.org.</systemitem>, so <literal>www</literal>
- would translate to <systemitem>www.example.org.</systemitem>
- </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><systemitem class="fqdomainname">example.org.</systemitem></term>
-
- <listitem><para>the domain name, also the origin for this
- zone file.</para></listitem>
- </varlistentry>
-
- <varlistentry>
- <term><systemitem class="fqdomainname">ns1.example.org.</systemitem></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,
- <systemitem class="fqdomainname">ns1.example.org</systemitem> would resolve
- to <systemitem class="ipaddress">192.168.1.2</systemitem>.
- </para>
-
- <programlisting>
- IN A 192.168.1.1</programlisting>
-
- <para>This line assigns IP address
- <systemitem class="ipaddress">192.168.1.1</systemitem> to the current origin,
- in this case <systemitem class="fqdomainname">example.org</systemitem>.</para>
-
- <programlisting>
-www IN CNAME @</programlisting>
-
- <para>
- The canonical name record is usually used for giving aliases
- to a machine. In the example, <systemitem>www</systemitem> is
- aliased to the <quote>master</quote> machine which name equals
- to domain name <systemitem class="fqdomainname">example.org</systemitem>
- (<systemitem class="ipaddress">192.168.1.1</systemitem>).
- 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. <systemitem class="fqdomainname">mail.example.org</systemitem> 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 <systemitem class="fqdomainname">example.org</systemitem> 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 <link xlink:href="http://www.cert.org/">CERT</link>'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><link xlink:href="http://www.isc.org/products/BIND/">Official ISC BIND
- Page</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.isc.org/sw/guild/bf/">Official ISC BIND
- Forum</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.nominum.com/getOpenSourceResource.php?id=6">
- BIND FAQ</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.oreilly.com/catalog/dns5/">O'Reilly
- DNS and BIND 5th Edition</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="ftp://ftp.isi.edu/in-notes/rfc1034.txt">RFC1034
- - Domain Names - Concepts and Facilities</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="ftp://ftp.isi.edu/in-notes/rfc1035.txt">RFC1035
- - Domain Names - Implementation and Specification</link></para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="network-apache">
- <info><title>Ο εξυπηρετητής HTTP Apache</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Συνεισφορά του </contrib></author>
-
- <author><personname><firstname>Βαγγέλης</firstname><surname>Τυπάλδος</surname></personname><contrib>Μετάφραση </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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;, τότε μπορείτε να τον εγκαταστήσετε από το
- πακέτο <package>www/apache13</package> ή από το
- πακέτο <package>www/apache20</package>.</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, μπορείτε να δείτε
- στην σελίδα <uri xlink:href="http://httpd.apache.org/">http://httpd.apache.org/</uri>.</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>bin</filename>
- και <filename>sbin</filename> του
- καταλόγου <quote>ServerRoot</quote> και τα αρχεία ρυθμίσεων
- αποθηκεύονται στον
- κατάλογο <filename>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 αν είναι διαφορετικό από εκείνο
- που έχετε ήδη ρυθμίσει στον κόμβο σας (εδώ μπορείτε, για
- παράδειγμα, να χρησιμοποιήσετε <systemitem>www</systemitem> αντί του
- πραγματικού ονόματος του κόμβου).</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
- ονομάζεται <systemitem class="fqdomainname">www.domain.tld</systemitem> και επιθυμείτε
- να εγκαταστήσετε ένα virtual domain για
- το <systemitem class="fqdomainname">www.someotherdomain.tld</systemitem> τότε θα πρέπει
- να προσθέσετε τις ακόλουθες καταχωρήσεις
- στο<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>
- στο <uri xlink:href="http://httpd.apache.org/docs/vhosts/">http://httpd.apache.org/docs/vhosts/</uri>.</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 <package>www/apache13-modssl</package> . Το
- SSL είναι επίσης διαθέσιμο για
- τον <application>Apache</application>&nbsp;2.X στην
- port <package>www/apache20</package>, όπου το 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 <package>www/mod_perl</package> ενώ μια
- στατικά μεταγλωττισμένη έκδοση είναι διαθέσιμη
- στο <package>www/apache13-modperl</package>.
- Το <application>mod_perl</application> 2.0 διατίθεται στο
- port <package>www/mod_perl2</package>.</para>
- </sect4>
-
- <sect4>
- <info><title>mod_php</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συγγραφή από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <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. Μπορείτε να ξεκινήσετε εγκαθιστώντας το
- πακέτο <package>lang/php5</package>.</para>
-
- <para>Αν το πακέτο <package>lang/php5</package>
- εγκαθίσταται για πρώτη φορά, αυτόματα θα σας εμφανιστούν όλες οι
- δυνατές επιλογές <literal>OPTIONS</literal>. Αν κάποιο μενού δεν
- εμφανίζεται, π.χ. επειδή το
- πακέτο <package>lang/php5</package> είχε
- εγκατασταθεί στο παρελθόν, μπορείτε πάντα να ρυθμίσετε από την αρχή
- το πακέτο, τρέχοντας στον κατάλογο του 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 <package>lang/php4</package>. Το
- port <package>lang/php4</package> υποστηρίζει
- πολλές από τις ρυθμίσεις και τις επιλογές εγκατάστασης του
- port <package>lang/php5</package>.</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 <package>lang/php5-extensions</package>. Αυτό
- το port παρέχει μενού επιλογών για την εγκατάσταση των επεκτάσιμων
- συστατικών του <acronym>PHP</acronym>. Εναλλακτικά, μπορείτε να
- εγκαταστήσετε καθεμία επέκταση ξεχωριστά χρησιμοποιώντας το
- κατάλληλο port.</para>
-
- <para>Για παράδειγμα, για να προσθέσετε στο <acronym>PHP</acronym>5,
- τη δυνατότητα υποστήριξης για βάσεις
- δεδομένων<application>MySQL</application> απλά εγκαταστήστε το
- port <package>databases/php5-mysql</package>.</para>
-
- <para>Μετά την εγκατάσταση ενός νέου αρθρώματος ή κάποιας άλλης
- επέκτασης, ο εξυπηρετητής <application>Apache</application> θα
- πρέπει να επαναφορτωθεί για να ενεργοποιηθούν οι νέες
- ρυθμίσεις:</para>
-
- <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
- </sect4>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 xml:id="network-ftp">
- <info><title>Πρωτόκολο Μεταφοράς Αρχείων (FTP)</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <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; σύστημα σας, ένα
- χρήστη με όνομα <systemitem class="username">ftp</systemitem> . Οι ανώνυμοι χρήστες θα
- μπορούν να εισέρχονται στον εξυπηρετητή FTP με το γενικό όνομα
- χρήστη <systemitem class="username">ftp</systemitem> ή με <systemitem class="username">anonymous</systemitem>
- και με οποιαδήποτε κωδικό πρόσβασης (συνηθίζεται να ζητείται η
- διεύθυνση email του χρήστη ως κωδικός πρόσβασης). Ο εξυπηρετητής FTP
- θα καλέσει το &man.chroot.2; μόλις εισέλθη ο ανώνυμος χρήστης, για να
- του περιορίσει την πρόσβαση, επιτρέποντας του μόνο τον αρχικό κατάλογο
- (home directory) του χρήστη <systemitem class="username">ftp</systemitem>.</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 xml:id="network-samba">
- <info><title>File and Print Services for &microsoft.windows; clients (Samba)</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
- <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 <package>net/samba3</package> 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 <uri xlink:href="http://localhost:901">http://localhost:901</uri>. You will
- first have to log on with the system <systemitem class="username">root</systemitem> 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>
-
- <listitem>
- <indexterm><primary>NetBIOS</primary></indexterm>
-
- <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>
-
- <listitem>
- <indexterm><primary>NIS+</primary></indexterm>
- <indexterm><primary>LDAP</primary></indexterm>
- <indexterm><primary>SQL database</primary></indexterm>
-
- <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
- <link xlink:href="http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/">Official Samba HOWTO</link>
- 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 <package>net/samba3</package> 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 <uri xlink:href="http://www.samba.org">http://www.samba.org</uri>.</para>
- </sect2>
-
- </sect1>
-
- <sect1 xml:id="network-ntp">
- <info><title>Συγχρονισμός Ρολογιού Συστήματος με NTP</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Hukins</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
- <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; ελέγξτε την τεκμηρίωση τους να δείτε αν υπάρχει
- τέτοια περίπτωση. Επιπλέον, υπάρχει
- μία <link xlink:href="http://ntp.isc.org/bin/view/Servers/WebHome">online
- λίστα εξυπηρετητών δημόσιας πρόσβασης</link>, που μπορείτε να
- χρησιμοποιήσετε για να βρείτε έναν κοντινό εξυπηρετητή 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>
- <title>Γενικές Ρυθμίσεις</title>
-
- <indexterm>
- <primary>NTP</primary>
- <secondary>ntp.conf</secondary>
- </indexterm>
-
- <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>, όπως συμβαίνει με
- τον <systemitem class="fqdomainname">ntplocal.example.com</systemitem>, τότε αυτός ο
- εξυπηρετητής είναι ο προτιμώμενος. Θα απορριφθεί η απάντηση από τον
- προτιμώμενο εξυπηρετητή σε περίπτωση που διαφέρει σημαντικά από
- όλους τους άλλους εξυπηρετητές, Σε περίπτωση που δεν υπάρχει μεγάλη
- απόκλιση θα χρησιμοποιηθεί δίχως να ληφθούν υπόψιν οι άλλες
- απαντήσεις. Το πρόθεμα <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>όπου <systemitem class="ipaddress">192.168.1.0</systemitem> είναι η
- διεύθυνση IP του δικτύου
- και <systemitem class="netmask">255.255.255.0</systemitem> είναι η μάσκα του
- δικτύου σας.</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>
diff --git a/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.xml b/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.xml
deleted file mode 100644
index 405d997b32..0000000000
--- a/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Κλειδιά PGP
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/pgpkeys/chapter.xml
- %SRCID% 39297
-
--->
-<!--
-
- Μην κάνετε αλλαγές σε αυτό το αρχείο, εκτός από αυτές που
- περιγράφονται στο script addkey.sh.
-
- Δείτε το αρχείο README στον κατάλογο head/share/pgpkeys.
-
--->
-<appendix xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="pgpkeys">
- <title>Κλειδιά PGP</title>
-
- <indexterm><primary>pgp keys</primary></indexterm>
- <para>Στο παράρτημα αυτό, θα βρείτε τα δημόσια PGP κλειδιά των officers
- και των μελών της ομάδας ανάπτυξης του &os;. Μπορείτε να τα
- χρησιμοποιήσετε για να ελέγξετε μια ψηφιακή υπογραφή ή για να στείλετε
- κρυπτογραφημένο email σε κάποιο μέλος της ομάδας. Μπορείτε να
- κατεβάσετε την πλήρη λίστα από κλειδιά χρηστών του <systemitem class="fqdomainname">FreeBSD.org</systemitem>, από την τοποθεσία
- <link xlink:href="&url.base;/doc/pgpkeyring.txt">http://www.FreeBSD.org/doc/pgpkeyring.txt</link>.</para>
-
- <sect1 xml:id="pgpkeys-officers">
- <title>Officers</title>
-
- &section.pgpkeys-officers;
- </sect1>
-
- <sect1 xml:id="pgpkeys-core">
- <title>Μέλη της Ομάδας Core</title>
-
- &section.pgpkeys-core;
- </sect1>
-
- <sect1 xml:id="pgpkeys-developers">
- <title>Μέλη της Ομάδας Ανάπτυξης</title>
-
- &section.pgpkeys-developers;
- </sect1>
-</appendix>
diff --git a/el_GR.ISO8859-7/books/handbook/ports/chapter.xml b/el_GR.ISO8859-7/books/handbook/ports/chapter.xml
deleted file mode 100644
index 47b11577b7..0000000000
--- a/el_GR.ISO8859-7/books/handbook/ports/chapter.xml
+++ /dev/null
@@ -1,1606 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εγκατάσταση Εφαρμογών: Packages και Ports
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/ports/chapter.xml
- %SRCID% 39234
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ports">
- <title>Εγκατάσταση Εφαρμογών: Πακέτα και Ports</title>
-
- <sect1 xml: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 xml: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>Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το
- <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> για θέματα ασφαλείας
- που σχετίζονται με την εφαρμογή σας.</para>
-
- <para>Μπορείτε επίσης να εγκαταστήσετε το <package>ports-mgmt/portaudit</package> το οποίο αυτόματα
- θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά
- σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση
- οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την
- εντολή <command>portaudit -F -a</command> αφότου έχετε πρώτα
- εγκαταστήσει μερικά πακέτα.</para>
- </warning>
-
- <para>Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα
- πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο
- λογισμικό στο &os;.</para>
- </sect1>
-
- <sect1 xml:id="ports-finding-applications">
- <title>Βρίσκοντας την Εφαρμογή σας</title>
-
- <para>Πριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι
- θέλετε να κάνει, και πως ονομάζεται η εφαρμογή.</para>
-
- <para>Η λίστα των διαθέσιμων εφαρμογών στο &os; μεγαλώνει συνεχώς.
- Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε:</para>
-
- <itemizedlist>
- <listitem>
- <para>Στη δικτυακή τοποθεσία του &os; θα βρείτε μια
- λίστα από όλες τις διαθέσιμες εφαρμογές, στο <link xlink:href="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</link>.
- Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα
- αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε
- να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να
- δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια
- κατηγορία.</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>FreshPorts</primary></indexterm>
-
- <para>Ο Dan Langille διατηρεί το FreshPorts, στο <uri xlink:href="http://www.FreshPorts.org/">http://www.FreshPorts.org/</uri>. Το FreshPorts
- καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς
- συμβαίνουν, επιτρέποντάς σας να <quote>παρακολουθείτε</quote> ένα
- ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά
- ανανεώνονται.</para>
- </listitem>
-
- <listitem>
- <indexterm><primary>Freecode</primary></indexterm>
-
- <para>Αν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε,
- δοκιμάστε να χρησιμοποιήσετε ένα site σαν το Freecode(<uri xlink:href="http://www.freecode.com/">http://www.freecode.com/</uri>) για να βρείτε μία
- εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του &os; για
- να δείτε αν η εφαρμογή έχει γίνει port.</para>
- </listitem>
-
- <listitem>
- <para>Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να
- βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την
- εντολή &man.whereis.1;. Απλά γράψτε
- <command>whereis αρχείο</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>/usr/ports/distfiles</filename> εφόσον
- ταιριάζουν στην αναζήτηση.</para>
- </listitem>
-
- <listitem>
- <para>Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι
- χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των
- Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα
- χρειαστεί να βρίσκεστε στον κατάλογο
- <filename>/usr/ports</filename>. Όταν βρεθείτε σε αυτόν τον
- κατάλογο, εκτελέστε το <command>make search
- name=όνομα--προγράμματος</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 search key=φράση</command> όπου
- <replaceable>φράση</replaceable> είναι κάποιο κείμενο προς
- αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και
- εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που
- σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα
- του προγράμματος που αναζητάτε.</para>
-
- <para>Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι
- case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών).
- Η αναζήτηση για το <quote>LSOF</quote>, θα δώσει τα ίδια
- αποτελέσματα με την αναζήτηση για το <quote>lsof</quote>.</para>
- </listitem>
- </itemizedlist>
- </sect1>
-
- <sect1 xml:id="packages-using">
- <info><title>Χρησιμοποιώντας το Σύστημα των Πακέτων</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <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 ftp2.FreeBSD.org</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&gt;</prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
-250 CWD command successful.
-<prompt>ftp&gt;</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&gt;</prompt> <userinput>exit</userinput>
-&prompt.root; <userinput>pkg_add lsof-4.56.4.tgz</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 lsof</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>. Μπορείτε
- να τα βρείτε στο <uri xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/</uri>,
- ή στα 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 xchat-1.7.1</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 xchat\*</userinput></screen>
-
- <para>Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα
- τους αρχίζουν με <literal>xchat</literal>.</para>
- </sect2>
-
- <sect2>
- <title>Διάφορα</title>
-
- <para>Όλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον
- κατάλογο <filename>/var/db/pkg</filename>. Στα αρχεία αυτού του
- καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα
- των αρχείων που εγκαθιστά.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="ports-using">
- <title>Χρησιμοποιώντας την Συλλογή των Ports</title>
-
- <para>Τα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της
- Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο
- σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων
- επιλογών του <command>make</command> και των μεταβλητών περιβάλλοντος
- στο &man.ports.7;.</para>
-
- <sect2 xml: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>/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 cvsup.FreeBSD.org /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>Σε αυτή την περίπτωση, ως <systemitem class="username">root</systemitem>,
- αντιγράψτε το
- <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 /root/ports-supfile</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>/var/db/portsnap</filename>.
- Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από
- αυτό το βήμα.</para>
-
- <screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
- </step>
-
- <step>
- <para>Αν εκτελείτε το <application>Portsnap</application> για
- πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο <filename>/usr/ports</filename>:</para>
-
- <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
-
- <para>Εάν ήδη έχετε ένα γεμάτο <filename>/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>Ως <systemitem class="username">root</systemitem>, εκτελέστε το
- <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 xml: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
- γενικότερα, δείτε το <link xlink:href="&url.books.porters-handbook;/index.html">&os; Porter's
- Handbook</link>.</para>
-
- <para>Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος
- κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να
- προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο.
- Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο
- δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο,
- αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι
- ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε
- οποιαδήποτε μορφή κι αν διατίθεται, λέγεται <quote>distfile</quote>.
- Οι δύο μέθοδοι για να εγκαταστήσετε ένα &os; port περιγράφονται
- παρακάτω.</para>
-
- <note>
- <para>Πρέπει να συνδεθείτε ως <systemitem class="username">root</systemitem> για να
- εγκαταστήσετε ports.</para>
- </note>
-
- <warning>
- <para>Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε
- ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε
- το <uri xlink:href="http://vuxml.freebsd.org/">http://vuxml.freebsd.org/</uri> για θέματα
- ασφαλείας σχετικά με το port που ενδιαφέρεστε.</para>
-
- <para>Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας
- πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να
- χρησιμοποιήσετε το <application>portaudit</application>.
- Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports
- (<package>ports-mgmt/portaudit</package>). Είναι
- καλή ιδέα να εκτελέσετε το <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>, και αυτή η λέξη είναι
- <buildtarget>install</buildtarget>:</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 install clean</command> αντί
- για <command>make</command>,
- <command>make install</command> και
- <command>make clean</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 από το <link xlink:href="http://www.freebsdmall.com/">&os; Mall</link>, περιέχουν
- distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports.
- Προσαρτήστε το DVD-ROM στο <filename>/cdrom</filename>. Αν
- χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την
- μεταβλητή <varname>CD_MOUNTPTS</varname> του 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 fetch</command>.
- Απλώς εκτελέστε την εντολή στον κατάλογο
- (<filename>/usr/ports</filename>) και τα απαραίτητα αρχεία
- θα <quote>κατέβουν</quote> για εσάς. Η εντολή αυτή θα λειτουργήσει
- και σε υποκαταλόγους, όπως για παράδειγμα:
- <filename>/usr/ports/net</filename>. Προσέξτε ότι αν ένα port
- εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή
- <emphasis>δεν</emphasis> θα ανακτήσει τα distfiles τους.
- Αντικαταστήστε το <buildtarget>fetch</buildtarget> με το
- <buildtarget>fetch-recursive</buildtarget>
- αν θέλετε μαζί με το port να ανακτήσετε και όλες τις
- εξαρτήσεις του.</para>
-
- <note>
- <para>Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή
- ακόμα και σε όλες, εκτελώντας το <command>make</command> στον αρχικό
- κατάλογο, όπως με την προαναφερθείσα
- <command>make fetch</command> μέθοδο.
- Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να
- συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να
- εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο
- όνομα.</para>
- </note>
-
- <para>Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται
- να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα
- <varname>MASTER_SITES</varname> (η τοποθεσία από όπου
- <quote>κατεβαίνουν</quote> τα αρχεία). Μπορείτε να αλλάξετε την
- επιλογή <varname>MASTER_SITES</varname> με την ακόλουθη
- εντολή:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/directory</userinput>
-&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
-ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
-
- <para>Σε αυτό το παράδειγμα αλλάξαμε την επιλογή
- <varname>MASTER_SITES</varname> σε <systemitem class="fqdomainname">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</systemitem>.</para>
-
- <note>
- <para>Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές
- μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν
- τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές
- ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων
- ports είναι τα <package>www/firefox</package>,
- <package>security/gpgme</package>, και το
- <package>mail/sylpheed-claws</package>. Όταν
- υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη
- σας σχετικό μήνυμα.</para>
- </note>
-
- <sect3>
- <title>Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των
- Ports</title>
-
- <para>Μερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε
- ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές
- <varname>WRKDIRPREFIX</varname> και <varname>PREFIX</varname>
- μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για
- παράδειγμα, η εντολή:</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) δεν συνεργάζονται σωστά με το
- <varname>PREFIX</varname>, και επιμένουν να εγκατασταθούν
- στο <filename>/usr/X11R6</filename>. Όμοια, μερικά Perl
- ports αγνοούν το <varname>PREFIX</varname> και εγκαθίστανται στο
- δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το
- <varname>PREFIX</varname> είναι μία δύσκολη ή αδύνατη
- δουλειά.</para>
- </sect3>
-
- <sect3>
- <title>Επαναρύθμιση Επιλογών Ports</title>
-
- <para>Όταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην
- οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας
- επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι
- σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού,
- για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές,
- μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε
- στον κατάλογο του port και να γράψετε
- <command>make config</command>, με το
- οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας
- ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την
- εντολή <command>make showconfig</command>,
- με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port.
- Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή
- <command>make rmconfig</command> η οποία
- θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να
- ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα
- περισσότερες, εξηγούνται στη σελίδα manual του &man.ports.7;.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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 xml: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 xml: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 xml:id="portupgrade">
- <title>Αναβαθμίζοντας Ports με το Portupgrade</title>
-
- <indexterm>
- <primary>portupgrade</primary>
- </indexterm>
-
- <para>Το εργαλείο <application>portupgrade</application> είναι
- σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports.
- Διατίθεται από το
- <package>ports-mgmt/portupgrade</package> port.
- Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή
- <command>make install clean</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 pkgname</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 xml:id="portmanager">
- <title>Αναβαθμίζοντας Ports με το Portmanager</title>
-
- <indexterm>
- <primary>portmanager</primary>
- </indexterm>
- <para>Το <application>Portmanager</application> είναι ένα ακόμα
- εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται
- από το <package>ports-mgmt/portmanager</package>
- port:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portmanager</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Όλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν
- χρησιμοποιώντας αυτή την απλή εντολή:</para>
-
- <screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
-
- <para>Μπορείτε να προσθέσετε την επιλογή <option>-ui</option>
- στην παραπάνω εντολή (<userinput>portmanager -u -ui</userinput>)
- για να ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το
- <application>Portmanager</application>.
- Το <application>Portmanager</application> μπορεί επίσης
- να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα.
- Σε αντίθεση με την εντολή
- <command>make install clean</command>, το
- <application>Portmanager</application> θα αναβαθμίσει όλες
- τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του
- επιλεγμένου port.</para>
-
- <screen>&prompt.root; <userinput>portmanager x11/gnome2</userinput></screen>
-
- <para>Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός
- επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το
- <application>Portmanager</application> για να τις
- επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με
- τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό
- port.</para>
-
- <screen>&prompt.root; <userinput>portmanager graphics/gimp -f</userinput></screen>
-
- <para>Για περισσότερες πληροφορίες δείτε τη σελίδα manual
- &man.portmanager.1;.</para>
- </sect3>
-
- <sect3 xml:id="portmaster">
- <title>Αναβαθμίζοντας τα Ports μέσω του Portmaster</title>
-
- <indexterm>
- <primary>portmaster</primary>
- </indexterm>
- <para>Το <application>Portmaster</application> είναι ένα ακόμα
- εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το
- <application>Portmaster</application> σχεδιάστηκε ώστε να
- χρησιμοποιεί τα εργαλεία που παρέχει το <quote>βασικό</quote>
- σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις
- πληροφορίες του <filename>/var/db/pkg</filename>
- για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω
- του port
- <package>ports-mgmt/portmaster</package>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portmaster</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>
-===&gt;&gt;&gt; Root ports (No dependencies, not depended on)
-===&gt;&gt;&gt; ispell-3.2.06_18
-===&gt;&gt;&gt; screen-4.0.3
- ===&gt;&gt;&gt; New version available: screen-4.0.3_1
-===&gt;&gt;&gt; tcpflow-0.21_1
-===&gt;&gt;&gt; 7 root ports
-...
-===&gt;&gt;&gt; Branch ports (Have dependencies, are depended on)
-===&gt;&gt;&gt; apache-2.2.3
- ===&gt;&gt;&gt; New version available: apache-2.2.8
-...
-===&gt;&gt;&gt; Leaf ports (Have dependencies, not depended on)
-===&gt;&gt;&gt; automake-1.9.6_2
-===&gt;&gt;&gt; bash-3.1.17
- ===&gt;&gt;&gt; New version available: bash-3.2.33
-...
-===&gt;&gt;&gt; 32 leaf ports
-
-===&gt;&gt;&gt; 137 total installed ports
- ===&gt;&gt;&gt; 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 shells/bash</userinput></screen>
-
- <para>Παρακαλούμε δείτε τη σελίδα manual του &man.portmaster.8; για
- περισσότερες πληροφορίες.</para>
- </sect3>
- </sect2>
-
- <sect2 xml:id="ports-disk-space">
- <title>Ports και Αποθηκευτικός Χώρος</title>
-
- <indexterm>
- <primary>ports</primary>
- <secondary>disk-space</secondary>
- </indexterm>
- <para>Η Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την
- πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού
- από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς
- καταλόγους <filename>work</filename>
- χρησιμοποιώντας την εντολή
- <command>make clean</command>. Mπορείτε να
- καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή:</para>
-
- <screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
-
- <para>Με την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής
- πηγαίου κώδικα στον κατάλογο
- <filename>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
- <package>ports-mgmt/pkg_cutleaves</package>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml: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 foopackage</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 foopackage-1.0.0</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 xml:id="ports-broken">
- <title>Αντιμετωπίζοντας Χαλασμένα Ports</title>
-
- <para>Αν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί,
- υπάρχουν κάποια πράγματα που μπορείτε να κάνετε:</para>
-
- <orderedlist>
- <listitem>
- <para>Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο
- <link xlink:href="&url.base;/support.html#gnats">Problem Report
- database</link>. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη
- προτεινόμενη διόρθωση.</para>
- </listitem>
-
- <listitem>
- <para>Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε
- <command>make maintainer</command> ή
- διαβάστε το <filename>Makefile</filename> για να βρείτε την
- διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να
- συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή
- <literal>&dollar;&os;:</literal> από το
- <filename>Makefile</filename>) καθώς και την έξοδο του
- σφάλματος.</para>
-
- <note>
- <para>Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο,
- αλλά από κάποια <link xlink:href="&url.articles.mailing-list-faq;/article.html">mailing
- list</link>. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις
- έχουν την μορφή
- <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; για να στείλετε
- μια αναφορά σφάλματος (δείτε το <link xlink:href="&url.articles.problem-reports;/article.html">Γράφοντας
- Αναφορές Σφάλματος για το &os;</link>).</para>
- </listitem>
-
- <listitem>
- <para>Διορθώστε το! Το <link xlink:href="&url.books.porters-handbook;/index.html">Porter's
- Handbook</link> περιέχει λεπτομερείς πληροφορίες για την υποδομή
- των <quote>Ports</quote> ώστε να μπορείτε να διορθώσετε το
- περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα
- δικό σας port!</para>
- </listitem>
-
- <listitem>
- <para>Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η
- <quote>κύρια</quote> συλλογή πακέτων βρίσκεται στο <systemitem class="fqdomainname">ftp.FreeBSD.org</systemitem>, στον <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">κατάλογο
- πακέτων</link>. Πριν τη χρησιμοποιήσετε, ελέγξτε
- <emphasis>πρώτα</emphasis> το <link linkend="mirrors-ftp">τοπικό σας mirror</link>.
- Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν,
- από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και
- η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα
- &man.pkg.add.1; για να εγκαταστήσετε το πακέτο στο
- σύστημα σας.</para>
- </listitem>
- </orderedlist>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml b/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml
deleted file mode 100644
index c4a07c49e3..0000000000
--- a/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.xml
+++ /dev/null
@@ -1,3266 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: PPP και SLIP
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.xml
- %SRCID% 39010
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="ppp-and-slip">
- <info><title>PPP και SLIP</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Αναδομήθηκε, αναδιοργανώθηκε, και ανανεώθηκε από
- τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml:id="ppp-and-slip-synopsis">
- <title>Σύνοψη</title>
- <indexterm xml:id="ppp-ppp">
- <primary>PPP</primary>
- </indexterm>
- <indexterm xml: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 xml:id="ppp-ppp-user">
- <primary>PPP</primary>
- <secondary>user PPP</secondary>
- </indexterm>
- <indexterm xml:id="ppp-ppp-kernel">
- <primary>PPP</primary>
- <secondary>kernel PPP</secondary>
- </indexterm>
- <indexterm xml: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 χρήστη
- χρησιμοποιεί τη συσκευή <filename>tun</filename> για την
- επικοινωνία με τον έξω κόσμο, ενώ το PPP πυρήνα χρησιμοποιεί την
- συσκευή <filename>ppp</filename>.</para>
-
- <note>
- <para>Σε όλο το κεφάλαιο, το PPP χρήστη θα αναφέρεται απλά ως
- <application>ppp</application> εκτός και αν χρειάζεται να γίνει
- διάκριση σε σχέση με άλλο λογισμικό PPP όπως το
- <application>pppd</application> (μόνο για το &os;&nbsp;7.X). Εκτός
- αν αναφέρεται διαφορετικά, όλες οι εντολές που εξηγούνται στο
- κεφάλαιο αυτό θα πρέπει να εκτελούνται ως
- <systemitem class="username">root</systemitem>.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="userppp">
- <info><title>Χρησιμοποιώντας το PPP Χρήστη</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Ενημερώθηκε και βελτιώθηκε από τον </contrib></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Brian</firstname><surname>Somers</surname></personname><contrib>Αρχική συνεισφορά του </contrib></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname><contrib>Με τη βοήθεια των </contrib></author>
-
- <author><personname><firstname>Dirk</firstname><surname>Fr&ouml;mberg</surname></personname></author>
-
- <author><personname><firstname>Peter</firstname><surname>Childs</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα ονόματα συσκευών για τις
- σειριακές θύρες μετονομάστηκαν από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</filename> και από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</filename>.
- Οι χρήστες του &os;&nbsp;7.X θα χρειαστεί να προσαρμόσουν τις
- παρακάτω οδηγίες σύμφωνα με αυτές τις αλλαγές.</para>
- </warning>
-
- <sect2>
- <title>PPP Χρήστη</title>
-
- <sect3>
- <title>Προϋποθέσεις</title>
-
- <para>Το κείμενο αυτό προϋποθέτει ότι έχετε τα παρακάτω:</para>
-
- <itemizedlist>
- <listitem>
- <para>Λογαριασμό σε κάποιο Παροχέα Υπηρεσιών Internet (ISP)<indexterm xml:id="ppp-isp"><primary>ISP</primary></indexterm> στον
- οποίο συνδέεστε χρησιμοποιώντας PPP<indexterm xml:id="ppp-ppp2"><primary>PPP</primary></indexterm>.</para>
- </listitem>
-
- <listitem>
- <para>Ένα modem ή άλλη συσκευή συνδεμένη στο σύστημα σας,
- και ρυθμισμένη σωστά ώστε να σας επιτρέπει να συνδεθείτε στον
- ISP σας.</para>
- </listitem>
-
- <listitem>
- <para>Τους αριθμούς κλήσης για τον ISP σας.</para>
- </listitem>
-
- <listitem>
- <para>Το όνομα χρήστη (login)<indexterm xml:id="ppp-login"><primary>login name</primary></indexterm> και τον κωδικό σας (password)<indexterm xml:id="ppp-password"><primary>password</primary></indexterm>.
- Είτε κανονικό όνομα και κωδικό (τύπου &unix;)<indexterm xml:id="ppp-unix"><primary>UNIX</primary></indexterm> ή ένα ζεύγος
- ονόματος / κωδικού τύπου PAP<indexterm xml:id="ppp-pap"><primary>PAP</primary></indexterm> ή CHAP<indexterm xml:id="ppp-chap"><primary>CHAP</primary></indexterm>.</para>
- </listitem>
-
- <listitem>
- <para>Τις IP διευθύνσεις ενός ή περισσότερων διακομιστών
- ονομάτων (DNS)<indexterm xml:id="ppp-nameserver"><primary>nameserver</primary></indexterm>. Φυσιολογικά, ο 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 σας δε σας την παρέχει, μπορείτε με ασφάλεια να
- χρησιμοποιήσετε την τιμή <systemitem class="netmask">255.255.255.255</systemitem>.</para>
- </listitem>
-
- <listitem>
- <para>Αν ο ISP σας παρέχει στατική διεύθυνση και όνομα υπολογιστή
- (hostname) μπορείτε να χρησιμοποιήσετε αυτά. Διαφορετικά,
- θα αφήσουμε τον απομακρυσμένο υπολογιστή να δώσει όποια
- διεύθυνση IP θεωρεί κατάλληλη<indexterm xml:id="ppp-static-ip"><primary>static IP address</primary></indexterm>.</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>/etc/ppp</filename>. Μπορείτε να
- βρείτε παραδείγματα για το ppp χρήστη στον κατάλογο <filename>/usr/share/examples/ppp/</filename>.</para>
-
- <para>H ρύθμιση του <command>ppp</command> απαιτεί την τροποποίηση
- ενός αριθμού από αρχεία, ανάλογα με τις απαιτήσεις σας. Το τι θα
- βάλετε σε αυτά, εξαρτάται σε ένα ποσοστό από το αν ο ISP σας
- αποδίδει στατικές διευθύνσεις IP (δηλ. σας παρέχει μια διεύθυνση
- IP η οποία δεν αλλάζει) ή δυναμικές (δηλ. η IP διεύθυνση σας
- αλλάζει κάθε φορά που συνδέεστε στον ISP σας).</para>
-
- <sect4 xml: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. Η συσκευή <filename>COM1</filename> είναι η
- <filename>/dev/cuau0</filename>
- και η <filename>COM2</filename> είναι η
- <filename>/dev/cuau1</filename>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Γραμμή 5:</term>
-
- <listitem>
- <para>Καθορίζει την ταχύτητα με την οποία επιθυμείτε να
- συνδεθείτε. Αν δεν λειτουργεί η τιμή 115200 (η οποία πρέπει
- να λειτουργεί με κάθε σχετικά σύγχρονο modem), δοκιμάστε
- με 38400.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Γραμμές 6 &amp; 7:</term>
-
- <listitem>
- <para>Το αλφαριθμητικό που θα χρησιμοποιηθεί για την κλήση.
- Το PPP<indexterm><primary>PPP</primary><secondary>user PPP</secondary></indexterm> χρήστη χρησιμοποιεί σύνταξη 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>
- <para>Αν χρησιμοποιείτε PPP ή CHAP, δεν θα υπάρχει στο σημείο
- αυτό προτροπή εισόδου (login), και θα πρέπει να μετατρέψετε
- τη γραμμή αυτή σε σχόλιο ή να την αφαιρέσετε. Δείτε την
- <link linkend="userppp-PAPnCHAP">Πιστοποίηση PAP<indexterm><primary>PAP</primary></indexterm>
- και CHAP</link><indexterm><primary>CHAP</primary></indexterm> για περισσότερες λεπτομέρειες.</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>
-
- <listitem>
- <para>Θέτει το χρόνο<indexterm><primary>timeout</primary></indexterm> αδράνειας (σε δευτερόλεπτα) για τη
- σύνδεση. Εδώ, η σύνδεση θα κλείσει αυτόματα αν δεν υπάρχει
- κίνηση για 300 δευτερόλεπτα. Αν δεν θέλετε να γίνεται
- ποτέ τερματισμός της σύνδεσης λόγω αδράνειας, θέστε αυτή τη
- τιμή σε μηδέν, ή χρησιμοποιήστε την επιλογή
- <option>-ddial</option> στη γραμμή εντολής.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>Γραμμή 17:</term>
-
- <listitem>
- <para>Θέτει τη διεύθυνση της διεπαφής. Το αλφαριθμητικό
- <replaceable>x.x.x.x</replaceable> θα πρέπει να
- αντικατασταθεί με τη διεύθυνση IP που σας έχει αποδοθεί από
- τον παροχέα σας. Το αλφαριθμητικό
- <replaceable>y.y.y.y</replaceable> θα πρέπει να
- αντικατασταθεί με την διεύθυνση IP που έχει καθορίσει ο
- ISP σας ως πύλη (gateway, το μηχάνημα στο οποίο συνδέεστε).
- Αν ο ISP<indexterm><primary>ISP</primary></indexterm> σας δεν σας έχει δώσει διεύθυνση πύλης,
- χρησιμοποιήστε την <systemitem class="netmask">10.0.0.2/0</systemitem>. Αν πρέπει να
- χρησιμοποιήσετε μια 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>usr/share/examples/ppp/</filename>.</para>
- </sect4>
-
- <sect4 xml: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 να αρχίσει τις διαπραγματεύσεις με την διεύθυνση
- <systemitem class="ipaddress">0.0.0.0</systemitem> αντί για την <systemitem class="ipaddress">10.0.0.1</systemitem>. Αυτό είναι απαραίτητο σε
- ορισμένους 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> είναι η <link xlink:href="http://mgetty.greenie.net/">mgetty</link> (από το πακέτο
- <package>comms/mgetty+sendfax</package>),
- μια πιο έξυπνη έκδοση της <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>
- πρέπει να γίνεται ως χρήστης <systemitem class="username">root</systemitem>. Αν
- ωστόσο θέλετε να επιτρέψετε την εκτέλεση του
- <command>ppp</command> σε κατάσταση εξυπηρετητή ως κανονικός
- χρήστης (με τον τρόπο που περιγράφεται παρακάτω) θα πρέπει να
- δώσετε σε αυτό το χρήστη τα κατάλληλα δικαιώματα για να
- εκτελεί το <command>ppp</command>, προσθέτοντας τον στην ομάδα
- <systemitem class="groupname">network</systemitem> στο αρχείο
- <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 με όνομα
- <systemitem class="username">pchilds</systemitem> (θυμηθείτε ότι δεν πρέπει να
- τροποποιείτε άμεσα το αρχείο των κωδικών, αλλά μέσω της εντολής
- &man.vipw.8;).</para>
-
- <programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>
-
- <para>Δημιουργήστε ένα κατάλογο <filename>/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, τους
- <systemitem class="username">fred</systemitem>, <systemitem class="username">sam</systemitem>, και
- <systemitem class="username">mary</systemitem>, στους οποίους εκτελείτε δρομολόγηση
- /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, θα πρέπει να ρυθμιστεί
- το κέλυφος στο συμβολικό δεσμό που δημιουργήθηκε παραπάνω (για
- παράδειγμα ο συμβολικός δεσμός για το κέλυφος του χρήστη
- <systemitem class="username">mary</systemitem> θα πρέπει να είναι ο
- <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. Θα συνεχίσουμε με το
- παράδειγμα μας με τους χρήστες
- <systemitem class="username">fred</systemitem>, <systemitem class="username">sam</systemitem>, και
- <systemitem class="username">mary</systemitem>.</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 (αν απαιτείται). Η παρακάτω γραμμή θα
- προσθέσει μια διαδρομή προς τη διεύθυνση δικτύου
- <systemitem class="ipaddress">203.14.101.0/24</systemitem>
- μέσω της σύνδεσης 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 xml: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
- <package>comms/mgetty+sendfax</package>, έρχεται
- με προεπιλεγμένη την επιλογή <literal>AUTO_PPP</literal>,
- επιτρέποντας έτσι στην <command>mgetty</command> να ανιχνεύει την
- φάση LCP των συνδέσεων PPP και να εκτελεί αυτόματα ένα κέλυφος
- ppp. Ωστόσο, καθώς με αυτό τον τρόπο δεν ενεργοποιείται η
- προεπιλεγμένη ακολουθία ονόματος χρήστη και κωδικού, είναι
- απαραίτητο να γίνει πιστοποίηση των χρηστών με τη χρήση PAP ή
- CHAP.</para>
-
- <para>Η ενότητα αυτή προϋποθέτει ότι ο χρήστης έχει ρυθμίσει,
- μεταγλωττίσει και εγκαταστήσει με επιτυχία το port <package>comms/mgetty+sendfax</package> στο σύστημα
- του.</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 xml: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>
-
- <listitem>
- <para>Η γραμμή αυτή καθορίζει τον κωδικό για τα PAP/CHAP. Θα
- χρειαστεί να εισάγετε την σωστή τιμή για το
- <replaceable>MyPassword</replaceable><indexterm><primary>password</primary></indexterm>. Ίσως θέλετε να
- προσθέσετε μια ακόμα γραμμή, όπως την παρακάτω:</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> στο όνομα, αντικαθίσταται με τον αριθμό της
- συσκευής <filename>tun</filename> που χρησιμοποιείται.</para>
-
- <para>Από τη στιγμή που ρυθμιστεί το socket, το πρόγραμμα
- &man.pppctl.8; μπορεί να χρησιμοποιηθεί σε scripts με τα οποία
- επιθυμείτε να διαχειριστείτε το πρόγραμμα <command>ppp</command>
- το οποίο εκτελείται ήδη.</para>
- </sect4>
- </sect3>
-
- <sect3 xml:id="userppp-nat">
- <title>Χρησιμοποιώντας τη Δυνατότητα Μετάφρασης Διευθύνσεων (NAT) του
- PPP</title>
-
- <para>Το PPP<indexterm><primary>PPP</primary><secondary>NAT</secondary></indexterm> έχει την ικανότητα να χρησιμοποιήσει δικό του εσωτερικό
- 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 xml: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 σας κατά
- απαίτηση, βεβαιωθείτε ότι υπάρχει στη λίστα η συσκευή
- <filename>tun0</filename>, διαφορετικά αφαιρέστε την.</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>Βεβαιωθείτε ότι περιλαμβάνεται στον πυρήνα σας η συσκευή
- <filename>tun</filename>.</para>
- </step>
-
- <step>
- <para>Βεβαιωθείτε ότι υπάρχει το αρχείο της συσκευής
- <filename>tunN</filename>
- στον κατάλογο <filename>/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>Βεβαιωθείτε ότι περιλαμβάνεται στον πυρήνα σας η συσκευή
- <filename>tun</filename>.</para>
- </step>
-
- <step>
- <para>Βεβαιωθείτε ότι υπάρχει το αρχείο της συσκευής
- <filename>tunN</filename>
- στον κατάλογο <filename>/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 xml:id="ppp">
- <info><title>Χρησιμοποιώντας το PPP του Πυρήνα</title>
- <authorgroup>
- <author><personname><firstname>Gennady B.</firstname><surname>Sorokopud</surname></personname><contrib>Κάποια τμήματα προέρχονται από αρχική συνεισφορά
- των </contrib></author>
-
- <author><personname><firstname>Robert</firstname><surname>Huff</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <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>/usr/sbin</filename> και ότι υπάρχει ο
- κατάλογος <filename>/etc/ppp</filename>.</para>
-
- <para>Το <command>pppd</command> έχει δύο καταστάσεις
- λειτουργίας:</para>
-
- <orderedlist>
- <listitem>
- <para>Ως πελάτης (<quote>client</quote>) &mdash; όταν θέλετε να
- συνδέσετε το μηχάνημα σας με τον έξω κόσμο μέσω σειριακής σύνδεσης
- σύνδεσης ή γραμμής modem.</para>
- </listitem>
-
- <listitem>
- <para>Ως εξυπηρετητής (<quote>server</quote>)<indexterm><primary>PPP</primary><secondary>server</secondary></indexterm> &mdash; το μηχάνημα
- σας είναι συνδεμένο στο δίκτυο και χρησιμοποιείται για να
- συνδέσει άλλους υπολογιστές, χρησιμοποιώντας το PPP.</para>
- </listitem>
- </orderedlist>
-
- <para>Και στις δύο περιπτώσεις θα χρειαστεί να δημιουργήσετε ένα αρχείο
- επιλογών (<filename>/etc/ppp/options</filename> ή
- <filename>~/.ppprc</filename> αν στο μηχάνημα σας υπάρχουν
- περισσότεροι από ένας χρήστες που χρησιμοποιούν το PPP).</para>
-
- <para>Θα χρειαστείτε επίσης και κάποιο λογισμικό για χρήση με modem
- και σειριακές συνδέσεις (κατά προτίμηση το <package>comms/kermit</package>), ώστε να μπορείτε να
- καλέσετε και να αποκαταστήσετε τη σύνδεση με τον απομακρυσμένο
- εξυπηρετητή.</para>
- </sect2>
-
- <sect2>
- <info><title>Χρησιμοποιώντας το <command>pppd</command> ως Πελάτης</title>
- <authorgroup>
- <author><personname><firstname>Trev</firstname><surname>Roydhouse</surname></personname><contrib>Βασισμένο σε πληροφορίες που παρείχε ο </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 /dev/tty01 19200</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 xml:id="ppp-troubleshoot">
- <info><title>Αντιμετώπιση Προβλημάτων σε Συνδέσεις
- <acronym>PPP</acronym></title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
-
- </info>
-
-
- <indexterm>
- <primary>PPP</primary>
- <secondary>troubleshooting</secondary>
- </indexterm>
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, το πρόγραμμα οδήγησης &man.sio.4;
- αντικαταστάθηκε από το &man.uart.4;. Τα ονόματα συσκευών των
- σειριακών θυρών έχουν αλλάξει από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</filename> και από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</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>, δεν
- χρειάζεται να κάνετε κάποια αλλαγή, καθώς η συσκεύη
- <filename>uart</filename> περιλαμβάνεται ήδη σε αυτόν.
- Απλώς ελέγξτε τα μηνύματα της <command>dmesg</command> για την
- συσκευή modem, χρησιμοποιώντας την παρακάτω εντολή:</para>
-
- <screen>&prompt.root; <userinput>dmesg | grep uart</userinput></screen>
-
- <para>Θα πρέπει να δείτε κάποια έξοδο σχετική με τις συσκευές
- <filename>uart</filename>. Πρόκειται για τις θύρες COM που
- χρειαζόμαστε. Αν το modem σας λειτουργεί ως τυποποιημένη σειριακή
- θύρα, θα πρέπει να το δείτε να αναφέρεται ως
- <filename>uart1</filename>, ή <filename>COM2</filename>. Αν
- συμβαίνει αυτό, δεν χρειάζεται να επαναμεταγλωττίσετε τον πυρήνα
- σας. Αν η σειριακή θύρα που αντιστοιχεί στο modem σας είναι η
- <filename>uart1</filename> ή <filename>COM2</filename> στο
- DOS, η αντίστοιχη συσκευή modem θα είναι η
- <filename>/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 /dev/cuau1</userinput></screen>
-
- <para>Θέτουμε τη συσκευή modem. Στο παράδειγμα μας, είναι η
- <filename>cuau1</filename>.</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>/dev/cuau1</filename>
-type '~h' for help</programlisting>
-
- <screen><userinput>at</userinput>
-OK
-<userinput>atdt123456789</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 myusername</userinput></screen>
-
- <para>Θα πρέπει να αντικαταστήσετε το
- <replaceable>myusername</replaceable> με το όνομα χρήστη που σας
- έχει δοθεί από τον <acronym>ISP</acronym> σας.</para>
-
- <screen>ppp ON example&gt; <userinput>set authkey mypassword</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 xml:id="pppoe">
- <info><title>Χρησιμοποιώντας PPP μέσω Ethernet (PPPoE)</title>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Συνεισφορά (από http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) του </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <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>Ως χρήστης <systemitem class="username">root</systemitem>, μπορείτε να
- εκτελέσετε:</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>Ως τελευταία λύση, θα μπορούσατε να δοκιμάσετε την μέθοδο
- που συνίσταται στο πρόγραμμα <link xlink:href="http://www.roaringpenguin.com/pppoe/">Roaring Penguin
- PPPoE</link> το οποίο μπορείτε να βρείτε στην <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><link xlink:href="http://renaud.waldura.com/doc/freebsd/pppoe/">Φθηνότερες
- Ευρυζωνικές Συνδέσεις μέσω &os; σε Γραμμή DSL</link> από τον
- Renaud Waldura.</para>
- </listitem>
- </itemizedlist>
- </sect2>
-
- <sect2 xml:id="ppp-3com">
- <title>Το PPPoE σε Modem &tm.3com; <trademark class="registered">HomeConnect</trademark> ADSL Dual Link</title>
-
- <para>Αυτό το modem δεν ακολουθεί το <link xlink:href="http://www.faqs.org/rfcs/rfc2516.html">RFC 2516</link>
- (<emphasis>Μια μέθοδος για μετάδοση PPP μέσω Ethernet
- (PPPoE)</emphasis>, γραμμένο από τους L. Mamakos, K. Lidl, J. Evarts,
- D. Carrel, D. Simone, και R. Wheeler). Αντίθετα, χρησιμοποιεί
- διαφορετικούς τύπους κωδικών πακέτων για τα πλαίσια Ethernet.
- Παρακαλούμε να εκφράσετε τα παράπονα σας στην <link xlink:href="http://www.3com.com/">3Com</link> αν νομίζετε ότι θα πρέπει
- να συμμορφωθεί με τις προδιαγραφές του 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 xml: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 της συσκευής διανέμεται υπό την άδεια
- <link xlink:href="http://www.speedtouchdsl.com/disclaimer_lx.htm">Alcatel's
- license agreement</link> και δεν μπορεί να διανεμηθεί ελεύθερα με
- το βασικό σύστημα του &os;.</para>
-
- <para>Για να εγκαταστήσετε το λογισμικό, απλά χρησιμοποιήστε την
- <link linkend="ports">Συλλογή των Ports</link>. Εγκαταστήστε το
- port <package>net/pppoa</package> και ακολουθήστε τις
- οδηγίες που περιλαμβάνονται σε αυτό.</para>
-
- <para>Όπως πολλές συσκευές USB, το Alcatel &speedtouch; χρειάζεται να
- κατεβάσει το firmware του από τον υπολογιστή στο οποίο είναι
- συνδεμένο, προκειμένου να λειτουργήσει σωστά. Η διαδικασία αυτή
- μπορεί να αυτοματοποιηθεί στο &os;, ώστε η μεταφορά να γίνεται κάθε
- φορά που συνδέεται η συσκευή στη θύρα USB. Μπορείτε να προσθέσετε
- τις παρακάτω πληροφορίες στο αρχείο
- <filename>/etc/usbd.conf</filename> για να ενεργοποιήσετε την
- αυτόματη μεταφορά του firmware. Θα πρέπει να επεξεργαστείτε αυτό το
- αρχείο ως χρήστης <systemitem class="username">root</systemitem>.</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>. Θα πρέπει και πάλι να εκτελέσετε
- τη διαδικασία αυτή ως <systemitem class="username">root</systemitem>.</para>
-
- <programlisting>ppp_enable="YES"
-ppp_mode="ddial"
-ppp_profile="adsl"</programlisting>
-
- <para>Για να λειτουργήσει σωστά το παραπάνω, θα πρέπει να έχετε
- χρησιμοποιήσει το υπόδειγμα του αρχείου <filename>ppp.conf</filename>
- το οποίο παρέχεται με το port <package>net/pppoa</package>.</para>
- </sect2>
-
- <sect2>
- <title>Χρησιμοποιώντας το mpd</title>
-
- <para>Μπορείτε να χρησιμοποιήσετε το <application>mpd</application> για
- να συνδεθείτε σε ένα πλήθος υπηρεσιών, και ειδικότερα υπηρεσίες PPTP.
- Μπορείτε να βρείτε το <application>mpd</application> στην Συλλογή των
- Ports, στο <package>net/mpd</package>. Πολλά ADSL
- modem απαιτούν τη δημιουργία ενός PPTP τούνελ μεταξύ του modem και του
- υπολογιστή. Ένα τέτοιο modem είναι το Alcatel &speedtouch;
- Home.</para>
-
- <para>Πρώτα πρέπει να εγκαταστήσετε το port, και μετά μπορείτε να
- ρυθμίσετε το <application>mpd</application> ώστε να καλύπτει τις
- απαιτήσεις σας και τις ρυθμίσεις του παροχέα σας. Το port εγκαθιστά
- κάποια παραδείγματα αρχείων ρυθμίσεων στον κατάλογο <filename>PREFIX/etc/mpd/</filename>.
- Τα αρχεία αυτά περιέχουν αρκετά καλή τεκμηρίωση των ρυθμίσεων.
- Σημειώστε εδώ, ότι το <replaceable>PREFIX</replaceable> είναι ο
- κατάλογος στον οποίο εγκαθίστανται τα ports, και από προεπιλογή είναι
- ο <filename>/usr/local/</filename>. Μετά την
- εγκατάσταση του port, θα βρείτε ένα πλήρη οδηγό για τη ρύθμιση του
- <application>mpd</application> σε μορφή HTML. Η τεκμηρίωση
- εγκαθίσταται στον κατάλογο <filename>PREFIX/share/doc/mpd/</filename>.
- Παρακάτω φαίνεται ένα υπόδειγμα ρυθμίσεων για σύνδεση σε μια υπηρεσία
- ADSL μέσω του <application>mpd</application>. Οι ρυθμίσεις χωρίζονται
- σε δύο αρχεία, πρώτα δείχνουμε το
- <filename>mpd.conf</filename>:</para>
-
- <note>
- <para>Το παρακάτω υπόδειγμα <filename>mpd.conf</filename> λειτουργεί
- μόνο με την έκδοση 4.X του <application>mpd</application>.</para>
- </note>
-
- <programlisting>default:
- load adsl
-
-adsl:
- new -i ng0 adsl adsl
- set bundle authname <replaceable>username</replaceable> <co xml:id="co-mpd-ex-user"/>
- set bundle password <replaceable>password</replaceable> <co xml: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 xml:id="co-mpd-ex-self"/>
- set pptp peer <replaceable>10.0.0.138</replaceable> <co xml: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, η διεύθυνση αυτή είναι από προεπιλογή η <systemitem class="ipaddress">10.0.0.138</systemitem>.</para>
- </callout>
- </calloutlist>
-
- <para>Είναι δυνατόν να αρχικοποιήσετε τη σύνδεση εύκολα, δίνοντας την
- παρακάτω εντολή ως <systemitem class="username">root</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>mpd -b adsl</userinput></screen>
-
- <para>Μπορείτε να δείτε την κατάσταση της σύνδεσης με την παρακάτω
- εντολή:</para>
-
- <screen>&prompt.user; <userinput>ifconfig ng0</userinput>
-ng0: flags=88d1&lt;UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST&gt; mtu 1500
- inet 216.136.204.117 --&gt; 204.152.186.171 netmask 0xffffffff</screen>
-
- <para>Το <application>mpd</application> αποτελεί τον συνιστώμενο τρόπο
- σύνδεσης του &os; με μια υπηρεσία ADSL.</para>
- </sect2>
-
- <sect2>
- <title>Χρησιμοποιώντας το pptpclient</title>
-
- <para>Μπορείτε επίσης να χρησιμοποιήσετε το &os; για να συνδεθείτε σε
- άλλες υπηρεσίες PPPoA χρησιμοποιώντας το
- <package>net/pptpclient</package>.</para>
-
- <para>Για να χρησιμοποιήσετε το <package>net/pptpclient</package> για να συνδεθείτε σε μια
- υπηρεσία DSL, εγκαταστήστε το port ή το πακέτο, και επεξεργαστείτε το
- αρχείο <filename>/etc/ppp/ppp.conf</filename>. Θα χρειαστεί να είστε
- <systemitem class="username">root</systemitem> για να κάνετε και τις δύο παραπάνω
- διαδικασίες. Παρακάτω φαίνεται ένα παράδειγμα μιας ενότητας του
- <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 xml:id="co-pptp-ex-user"/>
- set authkey <replaceable>password</replaceable> <co xml: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>, θα πρέπει να βεβαιωθείτε
- ότι κανένας άλλος δεν θα μπορεί να διαβάσει τα περιεχόμενα αυτού
- του αρχείου. Με τις παρακάτω εντολές, μπορείτε να εξασφαλίσετε
- ότι το αρχείο θα μπορεί να διαβαστεί μόνο μέσα από το λογαριασμό
- του <systemitem class="username">root</systemitem>. Δείτε τις σελίδες 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, η διεύθυνση αυτή είναι
- <systemitem class="ipaddress">10.0.0.138</systemitem>. Η τεκμηρίωση που διαθέτει
- ο δρομολογητής σας, θα αναφέρει ποια διεύθυνση χρησιμοποιεί η συσκευή
- σας. Για να ανοίξετε το τούνελ και να ξεκινήσετε μια συνεδρία PPP,
- εκτελέστε την ακόλουθη εντολή:</para>
-
- <screen>&prompt.root; <userinput>pptp address adsl</userinput></screen>
-
- <tip>
- <para>Είναι καλή ιδέα να προσθέσετε ένα <quote>&amp;</quote> στο τέλος
- της προηγούμενης εντολής, διαφορετικά το
- <application>pptp</application> δεν θα σας επιστρέψει τον έλεγχο
- (προτροπή) του τερματικού σας.</para>
- </tip>
-
- <para>Θα δημιουργηθεί μια συσκευή <filename>tun</filename>
- (εικονικό τούνελ) για την αλληλεπίδραση μεταξύ των διεργασιών
- <application>pptp</application> και <application>ppp</application>.
- Μόλις επιστρέψει η προτροπή στο τερματικό σας, ή το
- <application>pptp</application> επιβεβαιώσει τη σύνδεση, μπορείτε να
- εξετάσετε το τούνελ με τον τρόπο που φαίνεται παρακάτω:</para>
-
- <screen>&prompt.user; <userinput>ifconfig tun0</userinput>
-tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
- inet 216.136.204.21 --&gt; 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 xml:id="slip">
- <info><title>Χρησιμοποιώντας το SLIP</title>
- <authorgroup>
- <author><personname><firstname>Satoshi</firstname><surname>Asami</surname></personname><contrib>Αρχική συνεισφορά του </contrib></author>
- </authorgroup>
-
- <authorgroup>
- <author><personname><firstname>Guy</firstname><surname>Helmer</surname></personname><contrib>Με τη βοήθεια των </contrib></author>
-
- <author><personname><firstname>Piero</firstname><surname>Serini</surname></personname></author>
- </authorgroup>
- </info>
-
-
- <indexterm><primary>SLIP</primary></indexterm>
-
- <warning>
- <para>Η ενότητα αυτή εφαρμόζεται και είναι έγκυρη μόνο σε συστήματα
- &os;&nbsp;7.X.</para>
- </warning>
-
- <sect2 xml:id="slipc">
- <title>Ρυθμίζοντας ένα Πελάτη SLIP</title>
-
- <indexterm>
- <primary>SLIP</primary>
- <secondary>client</secondary>
- </indexterm>
-
- <para>Παρακάτω παρουσιάζουμε ένα τρόπο να ρυθμίσετε ένα μηχάνημα &os;
- ως πελάτη SLIP σε ένα δίκτυο με στατικές διευθύνσεις. Για μηχανήματα
- τα οποία λαμβάνουν όνομα δυναμικά (η διεύθυνση τους αλλάζει κάθε φορά
- που συνδέονται), πιθανόν να χρειαστεί να κάνετε πιο πολύπλοκες
- ρυθμίσεις.</para>
-
- <para>Αρχικά, θα πρέπει να καθορίσετε σε ποια σειριακή θύρα είναι
- συνδεμένο το modem σας. Αρκετοί χρήστες δημιουργούν ένα συμβολικό
- δεσμό π.χ. <filename>/dev/modem</filename>, το
- οποίο δείχνει στην πραγματική συσκευή <filename>/dev/cuadN</filename>.
- Αυτό σας επιτρέπει να συνεχίσετε να χρησιμοποιείτε το ίδιο όνομα
- συσκευής, ακόμα και αν μετακινήσετε το modem σε διαφορετική θύρα.
- Είναι μάλλον άβολο να πρέπει να αλλάξετε πλήθος αρχείων στο
- <filename>/etc</filename> καθώς και τα αρχεία
- <filename>.kermrc</filename> σε όλο το σύστημα!</para>
-
- <note>
- <para>Το <filename>/dev/cuad0</filename>
- είναι η <filename>COM1</filename>, το <filename>/dev/cuad1</filename> είναι η
- <filename>COM2</filename>, κ.ο.κ.</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>
-
- <listitem>
- <para>Ορίστε τον προεπιλεγμένο δρομολογητή, αλλάζοντας τη
- γραμμή<indexterm><primary>default route</primary></indexterm>:</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>Ρυθμίστε κωδικό πρόσβασης για τους χρήστες
- <systemitem class="username">root</systemitem> και
- <systemitem class="username">toor</systemitem> (καθώς και για όσους άλλους
- λογαριασμούς δεν έχουν κωδικό).</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>) και ως <systemitem class="username">root</systemitem>, γράψτε:</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>. Θυμηθείτε
- ότι πρέπει να είστε <systemitem class="username">root</systemitem> για να εκτελέσετε
- το παραπάνω. Έπειτα επανέλθετε στο <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 xml: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 xml: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
- <systemitem class="username">Shelmerg</systemitem>, η αντίστοιχη καταχώριση στο
- <filename>/etc/master.passwd</filename> θα έμοιαζε με την
- παρακάτω:</para>
-
- <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
-
- <para>Όταν εισέλθει ο <systemitem class="username">Shelmerg</systemitem>, το
- <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 (<systemitem>dc-slip</systemitem>), η
- απομακρυσμένη διεύθυνση IP (<systemitem>sl-helmer</systemitem>), η μάσκα
- δικτύου για τη διεπαφή SLIP (<systemitem class="netmask">0xfffffc00</systemitem>), και οποιεσδήποτε πρόσθετες
- επιλογές (<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>Για να εφαρμόσετε αυτές τις ρυθμίσεις άμεσα, μπορείτε να
- εκτελέσετε την παρακάτω εντολή ως <systemitem class="username">root</systemitem>:</para>
-
- <screen>&prompt.root; /etc/rc.d/routing start</screen>
-
- <para>Παρακαλούμε δείτε το <xref linkend="kernelconfig"/> για
- περισσότερες πληροφορίες σχετικά με την ρύθμιση του πυρήνα του
- &os;.</para>
- </sect3>
-
- <sect3>
- <title>Ρύθμιση του Sliplogin</title>
-
- <para>Όπως αναφέρθηκε και πριν, υπάρχουν τρία αρχεία στον κατάλογο
- <filename>/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 (<systemitem class="etheraddress">00:11:22:33:44:55</systemitem>) με την αντίστοιχη της
- δικής σας κάρτας 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 είναι <systemitem class="etheraddress">00:02:c1:28:5f:4a</systemitem>.
- Οι τελείες στην διεύθυνση που δείχνει η
- <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>
diff --git a/el_GR.ISO8859-7/books/handbook/preface/preface.xml b/el_GR.ISO8859-7/books/handbook/preface/preface.xml
deleted file mode 100644
index 542a0d0427..0000000000
--- a/el_GR.ISO8859-7/books/handbook/preface/preface.xml
+++ /dev/null
@@ -1,816 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Πρόλογος
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/preface/preface.xml
- %SRCID% 43126
-
--->
-<preface xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="book-preface">
- <title>Πρόλογος</title>
-
- <bridgehead xml:id="preface-audience" renderas="sect1">Σε Ποιους Απευθύνεται
- Αυτό το Βιβλίο</bridgehead>
-
- <para>Το πρώτο τμήμα αυτού του βιβλίου, οδηγεί τον νέο χρήστη στη
- διαδικασία εγκατάστασης του &os; και τον εισάγει ομαλά στη φιλοσοφία
- και τον σχεδιασμό του &unix;. Αυτό το τμήμα δεν έχει ιδιαίτερες
- απαιτήσεις. Αρκεί μόνο η διάθεση για εξερεύνηση ενός νέου συστήματος και
- η δυνατότητα αφομοίωσης των γνώσεων για το &os; καθώς αυτές εισάγονται
- σταδιακά.</para>
-
- <para>Αφού διαβάσετε το πρώτο τμήμα, το δεύτερο, κατά πολύ μεγαλύτερο τμήμα,
- περιλαμβάνει μια εκτενή αναφορά σε διάφορα θέματα που ενδιαφέρουν
- τους διαχειριστές συστημάτων &os;. Μερικά από αυτά τα κεφάλαια είναι
- ευκολότερο να τα κατανοήσετε αν έχετε ήδη μελετήσει συγκεκριμένα τμήματα
- του βιβλίου. Όπου χρειάζεται κάτι τέτοιο, θα αναφέρεται στη σύνοψη του
- κεφαλαίου που μόλις ξεκινήσατε να διαβάζετε.</para>
-
- <para>Για περισσότερες πηγές πληροφοριών, δείτε το
- <xref linkend="bibliography"/>.</para>
-
- <bridgehead xml:id="preface-changes-from3" renderas="sect1">Αλλαγές από την
- Τρίτη Έκδοση</bridgehead>
-
- <para>Η τρέχουσα έκδοση του Εγχειριδίου στο διαδίκτυο, είναι το
- αποτέλεσμα της προσπάθειας πολλών εκατοντάδων εθελοντών στο διάστημα
- των τελευταίων 10 χρόνων. Οι πιο σημαντικές αλλαγές σε σχέση με την
- τρίτη έντυπη έκδοση του Εγχειριδίου (2004) φαίνονται παρακάτω:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το <xref linkend="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 xml:id="preface-changes-from2" renderas="sect1">Αλλαγές από τη
- Δεύτερη Έκδοση (2004)</bridgehead>
-
- <para>Η τρίτη έκδοση αυτού του βιβλίου ήταν το αποτέλεσμα της προσπάθειας
- περισσότερων από δύο χρόνων από τα μέλη της Ομάδας Τεκμηρίωσης του &os;.
- Η έντυπη έκδοση είχε τόσο μεγάλο μέγεθος, που κρίθηκε αναγκαίο να τυπωθεί
- σε δύο χωριστούς τόμους. Παρακάτω φαίνονται οι σημαντικότερες αλλαγές σε
- αυτή τη νέα έκδοση:</para>
-
- <itemizedlist>
- <listitem>
- <para>Το <xref linkend="config-tuning"/>
- επεκτάθηκε με νέες πληροφορίες για τη
- διαχείριση ενέργειας και πόρων του συστήματος μέσω ACPI, με
- περισσότερες πληροφορίες για το σύστημα <command>cron</command> και
- με περισσότερες επιλογές παραμετροποίησης του πυρήνα του &os;.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="security"/> επεκτάθηκε
- με νέες πληροφορίες για Δίκτυα VPN, για λίστες ελέγχου πρόσβασης
- αρχείων (ACLs) και περισσότερες συμβουλές σχετικά με την ασφάλεια του
- &os;.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="mac"/>
- είναι ένα νέο κεφάλαιο σε αυτή την έκδοση. Εξηγεί τι είναι ο
- μηχανισμός MAC και πώς μπορεί να χρησιμοποιηθεί για να ενισχυθεί η
- ασφάλεια ενός συστήματος &os;.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="disks"/>
- επεκτάθηκε, με νέες πληροφορίες για συσκευές αποθήκευσης USB,
- στιγμιότυπα συστήματος αρχείων (snapshots), περιορισμούς στη χρήση
- των συστημάτων αρχείων (quotas), συστήματα αρχείων που βασίζονται
- σε υπάρχοντα αρχεία ή στο δίκτυο, καθώς και κρυπτογραφημένες
- κατατμήσεις δίσκων.</para>
- </listitem>
-
- <listitem>
- <para>Προστέθηκε μια ενότητα σχετικά με την αντιμετώπιση προβλημάτων
- στο <xref linkend="ppp-and-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 xml: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"/>
- ξαναγράφτηκε από την αρχή με πολλές εικόνες, ώστε να διευκολύνει τους
- χρήστες να κατανοήσουν το κείμενο.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="basics"/>
- επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
- πληροφορίες για τις διεργασίες (processes), τους δαίμονες (daemons),
- και τα σήματα (signals).</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="ports"/>
- επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
- πληροφορίες για την διαχείριση προμεταγλωττισμένων πακέτων
- (packages).</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="x11"/>
- ξαναγράφτηκε από την αρχή με έμφαση στην χρήση μοντέρνων τεχνολογιών,
- όπως τα περιβάλλοντα εργασίας <application>KDE</application> και
- <application>GNOME</application> σε &xfree86;&nbsp;4.X.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="boot"/>
- επεκτάθηκε με περισσότερες πληροφορίες.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="disks"/>
- ξαναγράφτηκε με βάση τα παλαιότερα δύο κεφάλαια <quote>Δίσκοι</quote>
- και <quote>Αντίγραφα Ασφαλείας</quote>. Πιστεύουμε ότι τα θέματα αυτά
- είναι πιο ευκολονόητα όταν παρουσιάζονται μαζί σαν ένα κεφάλαιο.
- Προστέθηκε επίσης μια ενότητα για RAID (υλοποίηση μέσω υλικού ή
- λογισμικού).</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="serialcomms"/>
- αναδιοργανώθηκε από την αρχή και ενημερώθηκε για
- τις εκδόσεις &os;&nbsp;4.X/5.X.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="ppp-and-slip"/>
- ενημερώθηκε σε σημαντικό βαθμό.</para>
- </listitem>
-
- <listitem>
- <para>Πολλοί νέοι τομείς προστέθηκαν στο
- <xref linkend="advanced-networking"/>.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="mail"/>
- επεκτάθηκε για να συμπεριλαμβάνει περισσότερες πληροφορίες για τις
- ρυθμίσεις του <application>sendmail</application>.</para>
- </listitem>
-
- <listitem>
- <para>Το <xref linkend="linuxemu"/>
- επεκτάθηκε για να συμπεριλαμβάνει πληροφορίες
- για την εγκατάσταση της βάσης δεδομένων
- <application>&oracle;</application> και του
- <application>&sap.r3;</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 xml: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="bsdinstall"/></emphasis></term>
-
- <listitem>
- <para>Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του
- &os;&nbsp;9.<replaceable>x</replaceable> και μεταγενέστερων
- εκδόσεων με τη χρήση του
- <application>bsdinstall</application>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="install"/></emphasis></term>
-
- <listitem>
- <para>Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του
- &os;&nbsp;8.<replaceable>x</replaceable> και προγενέστερων
- εκδόσεων με τη χρήση του <application>sysinstall</application>.
- Συμπεριλαμβάνονται επίσης μερικά θέματα εγκατάστασης για
- προχωρημένους, όπως η εγκατάσταση μέσω σειριακής κονσόλας.</para>
- </listitem>
- </varlistentry>
-
-
- <varlistentry>
- <term><emphasis><xref linkend="basics"/></emphasis></term>
-
- <listitem>
- <para>Περιέχει τις βασικές εντολές και λειτουργίες του λειτουργικού
- συστήματος &os;. Εάν είστε εξοικειωμένος με το &linux; ή με
- άλλο λειτουργικό τύπου &unix; μπορείτε πιθανώς να προσπεράσετε
- αυτό το κεφάλαιο.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="ports"/></emphasis></term>
-
- <listitem>
- <para>Περιγράφει τον τρόπο εγκατάστασης λογισμικού τρίτων
- κατασκευαστών με την καινοτόμο <quote>Συλλογή των Ports (Ports
- Collection)</quote> του &os; και με τα συνήθη προμεταγλωττισμένα
- πακέτα (packages).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="x11"/></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"/></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"/></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"/></emphasis></term>
-
- <listitem>
- <para>Περιγράφει τις δυνατότητες συμβατότητας του &os; με εφαρμογές
- &linux;. Επίσης παρέχει λεπτομερείς οδηγίες εγκατάστασης για πολλές
- γνωστές εφαρμογές του &linux; όπως
- <application>&oracle;</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"/></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"/></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"/></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="virtualization"/></emphasis></term>
-
- <listitem>
- <para>Περιγράφει τι προσφέρουν τα συστήματα εικονικοποίησης και πως
- μπορούν να χρησιμοποιηθούν με το &os;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="l10n"/></emphasis></term>
-
- <listitem>
- <para>Περιγράφει πως να χρησιμοποιήσετε το &os; σε γλώσσες εκτός της
- Αγγλικής. Καλύπτει την δυνατότητα τοπικών ρυθμίσεων τόσο σε
- επίπεδο συστήματος, όσο και σε επίπεδο εφαρμογών.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="updating-upgrading"/></emphasis></term>
-
- <listitem>
- <para>Εξηγεί τις διαφορές μεταξύ των εκδόσεων &os;-STABLE,
- &os;-CURRENT και των επίσημων (RELEASE) εκδόσεων του &os;.
- Περιγράφει ποιοι χρήστες ωφελούνται όταν ακολουθούν ένα σύστημα
- ανάπτυξης καθώς και τα απαιτούμενα για αυτό το σκοπό βήματα.
- Καλύπτει τις μεθόδους που μπορούν να χρησιμοποιήσουν οι χρήστες
- για να ενημερώσουν το σύστημα τους με τις τελευταίες διορθώσεις
- ασφαλείας.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis><xref linkend="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"/></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"/></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"/></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"/></emphasis></term>
-
- <listitem>
- <para>Καταγράφει τα δακτυλικά αποτυπώματα των κλειδιών PGP αρκετών
- μελών της Ομάδας Ανάπτυξης του &os;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <bridgehead xml:id="preface-conv" renderas="sect1">Συμβάσεις που
- χρησιμοποιούνται σε αυτό το βιβλίο</bridgehead>
-
- <para>Σε ολόκληρο το βιβλίο, χρησιμοποιούνται κάποιες τυπογραφικές
- συμβάσεις ώστε η μορφοποίηση του να είναι συνεπής και να είναι πιο
- ευανάγνωστο:</para>
-
- <bridgehead xml: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 xml: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 xml:id="preface-conv-examples" renderas="sect2">Παραδείγματα</bridgehead>
-
- <para>Τα παραδείγματα που ξεκινούν με <filename>C:\&gt;</filename>
- υποδηλώνουν μια εντολή &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;. Μπορείτε να συνδεθείτε σαν χρήστης
- <systemitem class="username">root</systemitem> για να πληκτρολογήσετε
- την εντολή, ή να συνδεθείτε σαν κανονικός χρήστης και να
- χρησιμοποιήσετε την εντολή &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 xml:id="preface-acknowledgements" renderas="sect1">Ευχαριστίες</bridgehead>
-
- <para>Το βιβλίο που κρατάτε, παρουσιάζει τις προσπάθειες πολλών εκατοντάδων
- ανθρώπων από όλο τον κόσμο. Είτε μας ενημέρωσαν για τυπογραφικά λάθη,
- είτε μας έστειλαν ολόκληρα κεφάλαια, η συμβολή όλων ήταν χρήσιμη.</para>
-
- <para>Μερικές εταιρείες υποστήριξαν την ανάπτυξη αυτού του εγγράφου
- μισθώνοντας συντάκτες να εργάζονται σε πλήρη απασχόληση, πληρώνοντας για
- την έκδοση, κτλ. Ειδικότερα, η BSDi (η οποία αργότερα αποκτήθηκε από την
- <link xlink:href="http://www.windriver.com">Wind River Systems</link>)
- μίσθωσε μέλη του &os; Documentation Project να εργάζονται σε πλήρη
- απασχόληση για την βελτίωση του βιβλίου, οδηγώντας στην πρώτη έντυπη
- έκδοση στα αγγλικά τον Μάρτιο του 2000 (ISBN 1-57176-241-8). Η εταιρεία
- Wind River Systems μίσθωσε τότε μερικούς επιπρόσθετους συντάκτες ώστε
- να κάνει βελτιώσεις στην δομή της έντυπης έκδοσης και να προσθέσει κάποια
- νέα κεφάλαια. Η αποκορύφωση αυτής της εργασίας ήταν η παρουσίαση
- της δεύτερης έντυπης έκδοσης, τον Νοέμβριο του 2001 (ISBN 1-57176-303-1).
- 1-57176-303-1). Το 2003-2004, η <link
- xlink:href="http://www.freebsdmall.com">&os; Mall, Inc</link>, μίσθωσε
- αρκετούς συνεργάτες να βελτιώσουν το Εγχειρίδιο Χρήσης προς ετοιμασία
- της τρίτης έντυπης έκδοσης.</para>
-</preface>
diff --git a/el_GR.ISO8859-7/books/handbook/printing/chapter.xml b/el_GR.ISO8859-7/books/handbook/printing/chapter.xml
deleted file mode 100644
index 1ccbf4f326..0000000000
--- a/el_GR.ISO8859-7/books/handbook/printing/chapter.xml
+++ /dev/null
@@ -1,5171 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εκτυπώσεις
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/printing/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="printing">
- <info><title>Εκτυπώσεις</title>
- <authorgroup>
- <author><personname><firstname>Sean</firstname><surname>Kelly</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- <!-- 30 Sept 1995 -->
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Jim</firstname><surname>Mock</surname></personname><contrib>Αναδομήθηκε και ανανεώθηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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 xml: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>
-
- <listitem>
- <para>Επιτρέπει σε χρήστες να στέλνουν αρχεία προς εκτύπωση. Οι
- αποστολές αυτές είναι γνωστές ως
- <emphasis>εργασίες (jobs)</emphasis><indexterm><primary>εργασίες εκτύπωσης</primary></indexterm>.</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 xml:id="printing-intro-why">
- <title>Γιατί θα πρέπει να χρησιμοποιείτε τον Spooler</title>
-
- <para>Αν είστε ο μοναδικός χρήστης του συστήματος, θα αναρωτιέστε
- γιατί θα έπρεπε να ενδιαφερθείτε για τον spooler αφού δεν χρειάζεστε
- έλεγχο πρόσβασης, σελίδες κεφαλίδας, ή αναφορές εκτύπωσης. Αν και
- μπορείτε να ενεργοποιήσετε την άμεση πρόσβαση στον εκτυπωτή, είναι
- καλύτερα να χρησιμοποιείτε τον spooler για τους παρακάτω
- λόγους:</para>
-
- <itemizedlist>
- <listitem>
- <para>το <application>LPD</application> εκτυπώνει τις εργασίες στο
- παρασκήνιο, δεν χρειάζεται να περιμένετε να αντιγραφούν τα
- δεδομένα στον εκτυπωτή.</para>
- </listitem>
-
- <listitem>
- <para>Το <application>LPD</application> μπορεί άνετα να εκτελεί
- μια εργασία εκτύπωσης διαμέσου φίλτρων και να προσθέτει κεφαλίδες
- ημερομηνίας/ώρας ή να μετατρέπει κάποιο ειδικό τύπο αρχείου
- (όπως ένα αρχείο &tex;<indexterm><primary>&tex;</primary></indexterm> DVI) σε ένα τύπο κατανοητό από τον
- εκτυπωτή σας. Αυτές οι διαδικασίες δεν χρειάζεται να γίνονται
- χειροκίνητα.</para>
- </listitem>
-
- <listitem>
- <para>Πολλά από τα ελεύθερα και εμπορικά διαθέσιμα προγράμματα
- που παρέχουν διευκολύνσεις στην εκτύπωση, συνήθως επιζητούν
- να επικοινωνήσουν με τον spooler του συστήματος σας. Ρυθμίζοντας
- το σύστημα παροχέτευσης, θα μπορείτε ευκολότερα να υποστηρίζετε
- λογισμικό τρίτων, που μπορεί ήδη να έχετε ή που πρόκειται να
- εγκαταστήσετε στο μέλλον.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="printing-intro-setup">
- <title>Βασική Εγκατάσταση</title>
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών για τις
- σειριακές θύρες μετονομάστηκαν από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</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 xml: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 xml:id="printing-hardware">
- <title>Ρυθμίσεις Hardware</title>
-
- <para>Αυτή η ενότητα εξηγεί τους διάφορους τρόπους σύνδεσης του
- εκτυπωτή με τον υπολογιστή σας. Περιγράφει τους διάφορους τύπους
- θυρών και καλωδίων, και τις ρυθμίσεις που πρέπει να κάνετε
- στον πυρήνα για να ενεργοποιήσετε την επικοινωνία μεταξύ &os; και
- εκτυπωτή.</para>
-
- <para>Αν ήδη έχετε καταφέρει να συνδέσετε τον εκτυπωτή σας και έχετε
- εκτυπώσει επιτυχώς σε άλλο λειτουργικό σύστημα, τότε μπορείτε να
- μεταβείτε κατευθείαν στην ενότητα <link linkend="printing-software">Ρυθμίσεις Λογισμικού</link>.</para>
-
- <sect4 xml:id="printing-ports">
- <title>Θύρες και Καλώδια</title>
-
- <para>Οι εκτυπωτές που διατίθενται σήμερα για χρήση με Η/Υ
- παρέχονται με μία ή περισσότερες εκ των ακολούθων τριών
- διασυνδέσεων:</para>
-
- <itemizedlist>
- <listitem>
- <para>Οι <emphasis>Σειριακές</emphasis><indexterm><primary>εκτυπωτές</primary><secondary>σειριακοί</secondary></indexterm> διασυνδέσεις, γνωστές
- και ως RS-232 ή θύρες COM, χρησιμοποιούν την σειριακή θύρα
- του υπολογιστή σας για να στείλουν δεδομένα στον εκτυπωτή.
- Οι σειριακές διασυνδέσεις είναι συνήθεις στην βιομηχανία
- κατασκευής Η/Υ και τα καλώδια είναι εκτενώς διαδεδομένα και
- επίσης εύκολα να κατασκευαστούν. Οι σειριακές διασυνδέσεις
- μερικές φορές χρειάζονται ειδικά καλώδια και μπορεί να σας
- ζητηθούν πολύπλοκες επικοινωνιακές ρυθμίσεις. Οι περισσότερες
- σειριακές θύρες των Η/Υ έχουν μέγιστη ταχύτητα μετάδοσης
- 115200&nbsp;bps, κάνοντας δύσκολη την εργασία εκτύπωσης
- γραφικών μεγάλων διαστάσεων.</para>
- </listitem>
-
- <listitem>
- <para>Οι <emphasis>Παράλληλες</emphasis><indexterm><primary>εκτυπωτές</primary><secondary>παράλληλοι</secondary></indexterm> διασυνδέσεις
- χρησιμοποιούν την παράλληλη θύρα του υπολογιστή σας για να
- στέλνουν δεδομένα στον εκτυπωτή. Οι παράλληλες διασυνδέσεις
- είναι διαδεδομένες στο εμπόριο και είναι γρηγορότερες από τις
- σειριακές RS-232. Τα καλώδια διατίθενται έτοιμα, αλλά είναι
- δυσκολότερο να κατασκευαστούν χειρωνακτικά. Με τις παράλληλες
- διασυνδέσεις δεν προβλέπονται επιλογές ρύθμισης επικοινωνίας,
- κάνοντας την ρύθμιση τους εξαιρετικά απλή.</para>
-
- <para>Οι παράλληλες διασυνδέσεις είναι γνωστές και ως
- διασυνδέσεις <quote>Centronics</quote><indexterm><primary>centronics</primary><see>παράλληλοι εκτυπωτές</see></indexterm>, ονομασία προερχόμενη
- από τον τύπο του ακροδέκτη του εκτυπωτή.</para>
- </listitem>
-
- <listitem>
- <para>Οι διασυνδέσεις USB<indexterm><primary>εκτυπωτές</primary><secondary>USB</secondary></indexterm>, συντομογραφία από το 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 xml:id="printing-parallel">
- <title>Παράλληλες Θύρες</title>
-
- <para>Για να συνδέσετε έναν εκτυπωτή σε παράλληλη θύρα, συνδέστε
- το καλώδιο Centronics μεταξύ εκτυπωτή και υπολογιστή.
- Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον υπολογιστή θα σας
- καθοδηγήσουν να ολοκληρώσετε την σύνδεση.</para>
-
- <para>Θυμηθείτε ποια παράλληλη θύρα χρησιμοποιείτε στον υπολογιστή.
- Η πρώτη παράλληλη θύρα στο &os; είναι η
- <filename>ppc0</filename>,
- η δεύτερη είναι η <filename>ppc1</filename>,
- και ούτω καθεξής. Το όνομα συσκευής του εκτυπωτή χρησιμοποιεί
- την ίδια αρίθμηση:
- <filename>/dev/lpt0</filename> για τον
- εκτυπωτή στην πρώτη παράλληλη θύρα κ.τ.λ.</para>
- </sect4>
-
- <sect4 xml: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>
-
- <listitem>
- <para>Ένα καλώδιο <emphasis>null-modem</emphasis><indexterm><primary>null-modem cable</primary></indexterm> ενώνει
- κατευθείαν μερικά 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 xml: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 xml:id="printing-kernel">
- <title>Ρυθμίσεις Πυρήνα</title>
-
- <para>Ο πυρήνας του λειτουργικού συστήματος έχει μεταγλωττιστεί έτσι
- ώστε να δουλεύει με ένα συγκεκριμένο σύνολο συσκευών. Η σειριακή
- και η παράλληλη διασύνδεση του εκτυπωτή είναι μέρος αυτού του
- συνόλου. Επομένως, ίσως να είναι αναγκαίο να προσθέσετε
- υποστήριξη για κάποια πρόσθετη σειριακή ή παράλληλη θύρα, αν δεν
- είναι ήδη ρυθμισμένη στον πυρήνα σας.</para>
-
- <para>Για να ελέγξετε αν ο πυρήνας σας μπορεί να υποστηρίξει μια
- σειριακή διασύνδεση, πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>grep sioN /var/run/dmesg.boot</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>grep ppcN /var/run/dmesg.boot</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 xml: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>lptcontrol -i -d /dev/lptN</userinput></screen>
-
- <para>για να θέσετε την κατάσταση λειτουργίας interrupt-driven
- για το <literal>lptN</literal>.</para>
- </step>
-
- <step>
- <para>Πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>lptcontrol -p -d /dev/lptN</userinput></screen>
-
- <para>για να θέσετε την κατάσταση λειτουργίας polled για το
- <literal>lptN</literal>.</para>
- </step>
- </procedure>
-
- <para>Θα μπορούσατε να καταχωρίσετε αυτές τις εντολές στο
- δικό σας αρχείο <filename>/etc/rc.local</filename>. Έτσι θα
- εκτελούνται αυτόματα κατά την εκκίνηση
- του συστήματος σας. Για περισσότερες πληροφορίες δείτε το
- &man.lptcontrol.8;.</para>
- </sect3>
-
- <sect3 xml: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 xml:id="printing-checking-parallel">
- <title>Έλεγχος Παράλληλου Εκτυπωτή</title>
-
- <indexterm>
- <primary>εκτυπωτές</primary>
- <secondary>παράλληλη</secondary>
- </indexterm>
- <para>Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί
- να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε παράλληλη
- θύρα.</para>
-
- <para><emphasis>Για να ελέγξετε έναν εκτυπωτή σε παράλληλη
- θύρα:</emphasis></para>
-
- <procedure>
- <step>
- <para>Γίνετε <systemitem class="username">root</systemitem> με &man.su.1;.</para>
- </step>
-
- <step>
- <para>Στείλτε δεδομένα στον εκτυπωτή.</para>
-
- <itemizedlist>
- <listitem>
- <para>Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο,
- τότε χρησιμοποιήστε το &man.lptest.1;.
- Πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>lptest &gt; /dev/lptN</userinput></screen>
-
- <para>Όπου <replaceable>N</replaceable> είναι ο αριθμός
- της παράλληλης θύρας, ξεκινώντας από το μηδέν.</para>
- </listitem>
-
- <listitem>
- <para>Εάν ο εκτυπωτής καταλαβαίνει &postscript; ή κάποια
- άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα
- στον εκτυπωτή. Πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>cat &gt; /dev/lptN</userinput></screen>
-
- <para>Έπειτα πληκτρολογήστε το πρόγραμμα μία προς μία
- γραμμή, <emphasis>προσεκτικά</emphasis>, γιατί δεν
- μπορείτε να επεξεργαστείτε μια γραμμή αφότου έχετε
- πιέσει το πλήκτρο <literal>RETURN</literal> ή
- <literal>ENTER</literal>. Αφού τελειώσετε με την
- καταχώριση του προγράμματος, πιέστε
- <literal>CONTROL+D</literal>, ή άλλο πλήκτρο
- τερματισμού αρχείου.</para>
-
- <para>Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα
- σε ένα αρχείο και να πληκτρολογήσετε:</para>
-
- <screen>&prompt.root; <userinput>cat file &gt; /dev/lptN</userinput></screen>
-
- <para>Όπου <replaceable>file</replaceable> είναι το
- όνομα του αρχείου που περιέχει το πρόγραμμα που θέλετε
- να στείλετε στον εκτυπωτή.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο
- δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.</para>
- </sect4>
-
- <sect4 xml:id="printing-checking-serial">
- <title>Έλεγχος Σειριακού Εκτυπωτή</title>
-
- <indexterm>
- <primary>printers</primary>
- <secondary>serial</secondary>
- </indexterm>
- <para>Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί
- να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε σειριακή
- θύρα.</para>
-
- <para><emphasis>Για να ελέγξετε έναν εκτυπωτή σε σειριακή
- θύρα:</emphasis></para>
-
- <procedure>
- <step>
- <para>Γίνετε <systemitem class="username">root</systemitem> με &man.su.1;.</para>
- </step>
-
- <step>
- <para>Επεξεργαστείτε το αρχείο
- <filename>/etc/remote</filename>. Προσθέστε την ακόλουθη
- καταχώριση:</para>
-
- <programlisting>printer:dv=<filename>/dev/port</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>/dev/ttyu2</filename>:br#19200:pa=none</programlisting>
- </step>
-
- <step>
- <para>Συνδεθείτε στον εκτυπωτή με &man.tip.1;.
- Πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>tip printer</userinput></screen>
-
- <para>Αν αυτό το στάδιο δεν δουλεύει, επεξεργαστείτε πάλι το
- αρχείο <filename>/etc/remote</filename> και προσπαθήστε το
- χρησιμοποιώντας
- <filename>/dev/cuaaN</filename>
- αντί για
- <filename>/dev/ttyuN</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;file</userinput></screen>
-
- <para>Όπου <replaceable>file</replaceable> είναι το
- όνομα του αρχείου που περιέχει το πρόγραμμα. Αφού το
- &man.tip.1; στείλει το αρχείο, πιέστε το κατάλληλο
- πλήκτρο τερματισμού αρχείου, αν απαιτείται.</para>
- </listitem>
- </itemizedlist>
- </step>
- </procedure>
-
- <para>Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το
- κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.</para>
- </sect4>
- </sect3>
-
- <sect3 xml: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>
-
- <step>
- <para>Απενεργοποιήστε τις σελίδες κεφαλίδας<indexterm><primary>σελίδες κεφαλίδας</primary></indexterm> (είναι ενεργές από
- προεπιλογή) εισάγοντας την ικανότητα <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>/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 xml: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 xml: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 xml:id="printing-spooldir">
- <title>Δημιουργία Καταλόγου Παροχέτευσης</title>
- <indexterm><primary>εκτυπωτής spool</primary></indexterm>
- <indexterm><primary>εκτύπωση εργασίες</primary></indexterm>
-
- <para>Το επόμενο βήμα στον απλό τρόπο εγκατάστασης είναι η
- δημιουργία ενός
- <emphasis>καταλόγου παροχέτευσης (spool)</emphasis>,
- όπου θα φιλοξενούνται οι εργασίες εκτύπωσης έως ότου
- να εκτυπωθούν και όπου επίσης φυλάσσονται και κάποια άλλα
- βοηθητικά αρχεία του συστήματος εκτύπωσης.</para>
-
- <para>Λόγω της μεταβαλλόμενης φύσης των καταλόγων παροχέτευσης,
- συνηθίζεται να τοποθετούνται κάτω από τον κατάλογο
- <filename>/var/spool</filename>. Δεν είναι
- αναγκαίο να παίρνετε αντίγραφα ασφαλείας των καταλόγων
- παροχέτευσης. Η επαναδημιουργία τους είναι τόσο απλή όσο να
- τρέξουμε την εντολή &man.mkdir.1;.</para>
-
- <para>Είναι επίσης συνηθισμένο να ονομάζεται ο κατάλογος με το ίδιο
- όνομα με τον εκτυπωτή, όπως φαίνεται παρακάτω:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/printer-name</userinput></screen>
-
- <para>Ωστόσο, αν έχετε αρκετούς εκτυπωτές στο δίκτυο, ίσως
- επιθυμείτε να τοποθετήσετε τους καταλόγους παροχέτευσης κάτω από
- ένα μοναδικό κατάλογο που θα χρησιμοποιείται αποκλειστικά για
- εκτυπώσεις με το <application>LPD</application>. Θα κάνουμε
- ακριβώς αυτό για τα παραδείγματα μας με τους εκτυπωτές
- <literal>rattan</literal> και <literal>bamboo</literal>:</para>
-
- <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen>
-
- <note>
- <para>Εάν οι εργασίες των χρηστών περιέχουν προσωπικά δεδομένα,
- μπορεί να θέλετε να προστατέψετε τον κατάλογο παροχέτευσης με
- κάποιο τρόπο, ώστε να μην είναι δημόσια προσβάσιμος. Οι
- κατάλογοι παροχέτευσης θα πρέπει να ανήκουν και να είναι
- αναγνώσιμοι, εγγράψιμοι και με δυνατότητα αναζήτησης από τον
- χρήστη daemon και από την ομάδα daemon, από κανέναν άλλο. Για
- τους εκτυπωτές του παραδείγματος:</para>
-
- <screen>&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/bamboo</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>/var/spool/lpd/rattan</filename>:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=<filename>/var/spool/lpd/bamboo</filename>:</programlisting>
-
- <para>Σημειώστε πως το όνομα του εκτυπωτή ξεκινά στην πρώτη στήλη,
- ενώ όλες οι άλλες καταχωρίσεις που περιγράφουν τον εκτυπωτή θα
- πρέπει να είναι στοιχισμένες και κάθε τέλος γραμμής να φέρει
- χαρακτήρα διαφυγής με αριστερόστροφη κάθετο.</para>
-
- <para>Εάν δεν προσδιορίσετε τον κατάλογο παροχέτευσης μέσω του
- <literal>sd</literal>, τότε το σύστημα παροχέτευσης θα
- χρησιμοποιήσει τον προεπιλεγμένο
- <filename>/var/spool/lpd</filename>.</para>
- </sect4>
-
- <sect4 xml:id="printing-device">
- <title>Αναγνώριση της Συσκευής Εκτύπωσης</title>
-
- <para>Στην ενότητα <link linkend="printing-hardware">Ρυθμίσεις
- Hardware</link> αναγνωρίσαμε τη θύρα, και κατά συνέπεια την
- καταχώριση του καταλόγου
- <filename>/dev</filename> που θα
- χρησιμοποιήσει το &os; για να επικοινωνήσει με τον εκτυπωτή.
- Τώρα, θα δώσουμε στο <application>LPD</application> αυτή
- την πληροφορία. Όταν το σύστημα παροχέτευσης έχει μια εργασία να
- εκτυπώσει, θα ανοίξει αυτή την ειδική συσκευή για λογαριασμό του
- προγράμματος φίλτρου (που είναι υπεύθυνο για το πέρασμα των
- δεδομένων στον εκτυπωτή).</para>
-
- <para>Προσδιορίστε την διαδρομή της καταχώρισης
- <filename>/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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/dev/lpt0</filename>:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :sh:sd=<filename>/var/spool/lpd/bamboo</filename>:\
- :lp=<filename>/dev/ttyu5</filename>:</programlisting>
-
- <para>Αν δεν καθορίσετε σε κάποιον εκτυπωτή την ικανότητα
- <literal>lp</literal> στο αρχείο
- <filename>/etc/printcap</filename>, το
- <application>LPD</application> χρησιμοποιεί από προεπιλογή
- το <filename>/dev/lp</filename>.
- Το <filename>/dev/lp</filename>
- δεν υπάρχει την δεδομένη στιγμή στο &os;.</para>
-
- <para>Εάν ο εκτυπωτής που εγκαθιστάτε είναι συνδεδεμένος σε
- παράλληλη θύρα, διαβάστε απευθείας την ενότητα με τίτλο
- <link linkend="printing-textfilter">Εγκατάσταση Φίλτρου
- Κειμένου</link>. Διαφορετικά, ακολουθήστε προσεκτικά τις
- οδηγίες που ακολουθούν στην επόμενη ενότητα.</para>
- </sect4>
-
- <sect4 xml: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#bps-rate</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#stty-mode</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>/var/spool/lpd/bamboo</filename>:\
- :lp=<filename>/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:</programlisting>
- </sect4>
-
- <sect4 xml: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>chmod 555 /usr/local/libexec/if-simple</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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/var/spool/lpd/bamboo</filename>:\
- :lp=<filename>/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>/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>lpd</userinput></screen>
- </sect4>
-
- <sect4 xml: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>lptest 20 5 | lpr -Pprinter-name</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 file</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 xml:id="printing-advanced">
- <title>Ρυθμίσεις Εκτυπωτών για Προχωρημένους</title>
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών για τις
- σειριακές θύρες μετονομάστηκαν από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</filename>.
- Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την
- τεκμηρίωση που ακολουθεί με βάση αυτές τις αλλαγές.</para>
- </warning>
-
- <para>Αυτή η ενότητα περιγράφει φίλτρα για την εκτύπωση ειδικής μορφής
- αρχείων, σελίδων κεφαλίδας, για εκτυπώσεις μέσω δικτύου, καθώς και για
- τον έλεγχο πρόσβασης και την καταμέτρηση χρήσης των εκτυπωτών.</para>
-
- <sect2 xml: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 -t</command> οι χρήστες σας να
- μπορούν να εκτυπώσουν δεδομένα troff, ή με
- <command>lpr -d</command> δεδομένα &tex;
- DVI, ή με <command>lpr -v</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>/usr/share/examples/printing</filename>.</para>
- </note>
-
- <sect3 xml: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>/dev/console</filename>).</para>
-
- <indexterm>
- <primary><command>troff</command></primary>
- </indexterm>
- <para>Το φίλτρο που θα ξεκινήσει το <application>LPD</application>
- καθώς και οι παράμετροι του φίλτρου, εξαρτώνται από το τι έχετε
- δηλώσει στο αρχείο <filename>/etc/printcap</filename> και από το τι
- παραμέτρους έχει καθορίσει ο ίδιος ο χρήστης για την εργασία με
- την γραμμή εντολής &man.lpr.1;. Για παράδειγμα, αν ο χρήστης
- πληκτρολογήσει <command>lpr -t</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 -l</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 -i</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>
-
- <listitem>
- <para>Ένα <emphasis>φίλτρο μετατροπής</emphasis><indexterm><primary>εκτυπώσεις</primary><secondary>φίλτρα</secondary></indexterm> μετατρέπει ένα
- αρχείο ειδικής μορφής σε ένα τύπο αρχείου κατάλληλο για εκτύπωση
- από τον συγκεκριμένο εκτυπωτή. Για παράδειγμα, τα δεδομένα
- στοιχειοθεσίας 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> είναι η τιμή από την
- ικανότητα px (προεπιλεγμένη τιμή 0) και
- <replaceable>pixel-height</replaceable> είναι η τιμή από την
- ικανότητα py (προεπιλεγμένη τιμή 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 xml: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 xml: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;, και μάλιστα σε πολλές εκδόσεις. Η πιο
- διαδεδομένη είναι το <package>print/ghostscript-gpl</package>.</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 -h</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 plain.text</command> και
- <command>lpr whatever.ps</command> και τα δύο θα εκτυπωθούν επιτυχώς.</para>
- </sect3>
-
- <sect3 xml: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>dvips seaweed-analysis.dvi</userinput>
-&prompt.user; <userinput>lpr seaweed-analysis.ps</userinput></screen>
-
- <para>Με την χρήση ενός φίλτρου μετατροπής για αρχεία DVI, μπορούμε
- να αποφύγουμε την μετατροπή που πρέπει να κάνουμε κάθε φορά
- χειροκίνητα, καλώντας το <application>LPD</application> να κάνει
- τη δουλειά για μας. Τώρα, κάθε φορά που έχουμε ένα αρχείο DVI,
- για να το τυπώσουμε χρειάζεται μόνο ένα βήμα:</para>
-
- <screen>&prompt.user; <userinput>lpr -d seaweed-analysis.dvi</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 -d</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 -g</command>
- σημαίνει <quote>τύπωσε αρχεία Printerleaf.</quote></para>
- </sect4>
-
- <sect4>
- <title>Εγκατάσταση Φίλτρων Μετατροπών</title>
-
- <para>Από τη στιγμή που τα φίλτρα μετατροπής είναι προγράμματα που
- δεν ανήκουν στο βασικό σύστημα εγκατάστασης του &os;, είναι πιο
- σωστό να εγκατασταθούν στον κατάλογο
- <filename>/usr/local</filename>. Ένας συνήθης
- προορισμός των προγραμμάτων αυτών είναι ο κατάλογος
- <filename>/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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/var/spool/lpd/bamboo</filename>:\
- :lp=<filename>/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>/dev/lpt0</filename>:sh:sd=<filename>/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>/dev/fd/0</filename> ως standard
- input είναι προβληματική. Θα μπορούσαμε να αντιμετωπίσουμε το
- πρόβλημα δημιουργώντας (συμβολικούς) δεσμούς με κάποιο προσωρινό
- όνομα αρχείου (που να τελειώνει σε <filename>.dvi</filename>)
- για το <filename>/dev/fd/0</filename>, και με
- αυτό τον τρόπο να εξαναγκάσουμε το <command>dvilj2p</command> να
- διαβάζει από το standard input.</para>
-
- <para>Ακόμη ένα πρόβλημα που προκύπτει είναι το γεγονός πως δεν
- μπορούμε να χρησιμοποιήσουμε το
- <filename>/tmp</filename> για τον
- προσωρινό δεσμό. Οι συμβολικοί δεσμοί ανήκουν στον χρήστη και
- στην ομάδα <systemitem class="username">bin</systemitem>, ενώ το φίλτρο τρέχει σαν
- χρήστης <systemitem class="username">daemon</systemitem>. Επίσης στον κατάλογο
- <filename>/tmp</filename> είναι ενεργό το
- sticky bit. Το φίλτρο μπορεί να δημιουργήσει το δεσμό, αλλά δεν
- θα είναι ικανό να τον εξαλείψει και να τον αφαιρέσει από τη
- στιγμή που αυτός θα ανήκει σε διαφορετικό χρήστη.</para>
-
- <para>Αντίθετα, το φίλτρο θα φτιάξει το συμβολικό link στον τρέχοντα
- κατάλογο, που είναι ο κατάλογος παροχέτευσης (spooling) (και που
- προσδιορίζεται από την ικανότητα <literal>sd</literal> στο
- <filename>/etc/printcap</filename>). Αυτό είναι το τέλειο μέρος
- για να δουλεύουν τα φίλτρα, ειδικά λόγω του ότι (μερικές φορές)
- υπάρχει περισσότερες ελεύθερος χώρος στο δίσκο στον κατάλογο
- παροχέτευσης (spool) από ότι στο
- <filename>/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 xml: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 xml: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 xml:id="printing-advanced-lpf">
- <title><command>lpf</command>: ένα Φίλτρο Κειμένου</title>
-
- <para>Το πρόγραμμα <filename>/usr/libexec/lpr/lpf</filename> που
- παρέχεται με τη διανομή εκτελέσιμων του &os; είναι ένα φίλτρο
- κειμένου (φίλτρο εισόδου) που μπορεί να παραγραφοποιεί την έξοδο
- (εργασίες που έχουν σταλεί με
- <command>lpr -i</command>), να
- επιτρέπει την διέλευση literal χαρακτήρων (εργασίες που έχουν
- σταλεί με <command>lpr -l</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 xml: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 xml: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>/dev/lpt0</filename>:sd=<filename>/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 -h</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 xml:id="printing-advanced-header-pages-controlling">
- <title>Έλεγχος Σελίδων Κεφαλίδας </title>
-
- <para>Μετά την ενεργοποίηση των σελίδων κεφαλίδας, το
- <application>LPD</application> θα παράγει μία <emphasis>επιμήκη
- κεφαλίδα</emphasis>, μία ολόκληρη σελίδα με μεγάλα γράμματα που
- προσδιορίζει τον χρήστη, τον υπολογιστή (host), και την εργασία.
- Εδώ είναι ένα παράδειγμα (η <systemitem class="username">kelly</systemitem> εκτύπωσε την
- εργασία με όνομα <quote>outline</quote> από τον υπολογιστή
- <systemitem>rose</systemitem>):</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 xml:id="printing-advanced-header-pages-accounting">
- <title>Καταμέτρηση με Σελίδες Κεφαλίδας</title>
-
- <para>Η χρήση των προεγκατεστημένων σελίδων κεφαλίδας του
- <application>LPD</application> ουσιαστικά υποχρεώνουν την τήρηση
- του παρακάτω κανόνα όταν κάνουμε καταμέτρηση χρήσης του εκτυπωτή:
- Οι σελίδες κεφαλίδας πρέπει να διατίθενται <emphasis>ελεύθερα (δίχως
- χρέωση)</emphasis>.</para>
-
- <para>Γιατί;</para>
-
- <para>Διότι το φίλτρο εξόδου είναι το μοναδικό εξωτερικό πρόγραμμα
- που έχει τον έλεγχο στην εκτύπωση της κεφαλίδας και θα μπορούσε να
- κάνει καταμέτρηση, αλλά ωστόσο δεν παρέχει καμία πληροφορία για
- <emphasis>τον χρήστη ή τον υπολογιστή</emphasis> ή κάποιο άλλο
- αρχείο καταμέτρησης, επομένως δεν γνωρίζει σε ποιόν να αποδώσει
- την χρήση του εκτυπωτή. Δεν αρκεί απλά να <quote>προσθέσετε μία
- ακόμη σελίδα στην καταμέτρηση</quote> τροποποιώντας το φίλτρο
- κειμένου ή οποιοδήποτε άλλο φίλτρο μετατροπής (το οποίο διαθέτει τις
- πληροφορίες χρήστη και υπολογιστή), από τη στιγμή που οι χρήστες
- έχουν την δυνατότητα να παρεμποδίσουν τις σελίδες κεφαλίδας με
- <command>lpr -h</command>. Θα μπορούσαν πάλι να
- χρεωθούν για σελίδες κεφαλίδας που δεν εκτύπωσαν. Βασικά, η
- <command>lpr -h</command> θα είναι η προτιμώμενη
- επιλογή σε ένα περιβάλλον που οι χρήστες έχουν οικολογική
- συνείδηση, αλλά δεν μπορείτε πραγματικά να παροτρύνετε οποιονδήποτε
- να τη χρησιμοποιήσει.</para>
-
- <para><emphasis>Δεν είναι αρκετό</emphasis> απλά κάθε φίλτρο σας να
- δημιουργεί τη δικιά του σελίδα κεφαλίδας (έτσι ώστε να μπορεί να
- χρεώνει με αυτό τον τρόπο). Αν οι χρήστες επιθυμούν την επιλογή
- παρεμπόδισης των σελίδων κεφαλίδας με
- <command>lpr -h</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 xml:id="printing-advanced-header-pages-ps">
- <title>Σελίδες Κεφαλίδας σε Εκτυπωτές &postscript;</title>
-
- <para>Όπως περιγράψαμε παραπάνω, το <application>LPD</application>
- μπορεί να δημιουργήσει μία σελίδα κεφαλίδας απλού κειμένου,
- κατάλληλη για πολλούς εκτυπωτές. Οι εκτυπωτές &postscript;,
- φυσικά, δεν μπορούν να τυπώσουν κατευθείαν απλό κείμενο, επομένως
- αυτή η δυνατότητα του <application>LPD</application> για τις
- σελίδες κεφαλίδας είναι άχρηστη σε αυτή την περίπτωση.</para>
-
- <para>Ένας προφανής τρόπος να παρέχονται σελίδες κεφαλίδας είναι να
- δημιουργούνται από κάθε φίλτρο μετατροπής και το φίλτρο κειμένου.
- Τα φίλτρα θα πρέπει να δέχονται ως παραμέτρους το όνομα του χρήστη
- και του υπολογιστή ώστε να δημιουργούν την κατάλληλη σελίδα
- κεφαλίδας. Το μειονέκτημα αυτής της μεθόδου είναι πως οι
- χρήστες θα εκτυπώνουν πάντα σελίδα κεφαλίδας, ακόμη κι αν
- αποστέλλουν την εργασία τους με
- <command>lpr -h</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 -h</command>, τότε ούτε το
- <application>LPD</application>, ούτε το φίλτρο εξόδου θα φτιάξουν
- σελίδα κεφαλίδας. Σε όλες τις άλλες περιπτώσεις, το φίλτρο εξόδου
- θα διαβάζει το κείμενο από το <application>LPD</application> και θα
- στέλνει τον κατάλληλο κώδικα &postscript; στον εκτυπωτή ώστε να
- εκτυπώνεται η σελίδα κεφαλίδας.</para>
-
- <para>Αν έχετε εκτυπωτή &postscript; με σειριακή σύνδεση, μπορείτε να
- κάνετε χρήση της <command>lprps</command>, η οποία συνοδεύεται από
- ένα φίλτρο εξόδου, το <command>psof</command>, το οποία κάνει τα
- παραπάνω. Σημειώστε πως το <command>psof</command> δεν χρεώνει για
- τις σελίδες κεφαλίδας.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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 xml: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>Εδώ είναι ένα παράδειγμα. Ο υπολογιστής <systemitem>rose</systemitem>
- έχει δύο εκτυπωτές, τον <literal>bamboo</literal> και τον
- <literal>rattan</literal>. Θέλουμε να ενεργοποιήσουμε τις
- εκτυπώσεις σε αυτούς τους εκτυπωτές για τους χρήστες του
- απομακρυσμένου υπολογιστή <systemitem>orchid</systemitem>. Εδώ είναι το
- αρχείο <filename>/etc/printcap</filename> του υπολογιστή
- <systemitem>orchid</systemitem> (δείτε πιο πίσω στην ενότητα <link linkend="printing-advanced-header-pages-enabling">Ενεργοποίηση
- Σελίδων Κεφαλίδας</link>). Ήδη έχει μια καταχώριση για τον
- εκτυπωτή <literal>teak</literal>. Εδώ προσθέσαμε τις απαραίτητες
- καταχωρίσεις για τους δύο εκτυπωτές του υπολογιστή
- <systemitem>rose</systemitem>:</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>/dev/lpt0</filename>:sd=<filename>/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>/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>/var/spool/lpd/bamboo</filename>:</programlisting>
-
- <para>Το μόνο που απομένει είναι να δημιουργήσουμε τους καταλόγους
- spooling στον κόμβο <systemitem>orchid</systemitem>:</para>
-
- <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
-&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
-
- <para>Τώρα, οι χρήστες του <systemitem>orchid</systemitem> μπορούν να
- εκτυπώνουν στον <literal>rattan</literal> και στον
- <literal>bamboo</literal>. Αν, για παράδειγμα, ένας χρήστης του
- <systemitem>orchid</systemitem> πληκτρολογήσει:
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen>
-
- το σύστημα <application>LPD</application> στον
- <systemitem>orchid</systemitem> θα αντιγράψει την εργασία στον κατάλογο
- spooling
- <filename>/var/spool/lpd/bamboo</filename> και θα
- σημειώσει πως πρόκειται για εργασία DVI. Μόλις ο υπολογιστής
- <systemitem>rose</systemitem> έχει διαθέσιμο χώρο στον κατάλογο spooling του
- <literal>bamboo</literal>, τα δύο <application>LPDs</application>
- θα μεταφέρουν το αρχείο στον <systemitem>rose</systemitem>. Το αρχείο θα
- μπει σε ουρά αναμονής στον υπολογιστή <systemitem>rose</systemitem> έως
- ότου εκτυπωθεί. Θα μετατραπεί από DVI σε &postscript; (αφού ο
- <literal>bamboo</literal> είναι εκτυπωτής &postscript;) στον
- υπολογιστή <systemitem>rose</systemitem>.</para>
- </sect3>
-
- <sect3 xml: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. Το όνομα του εκτυπωτή στο δίκτυο είναι
- <systemitem>scrivener</systemitem>. Εδώ είναι το φίλτρο κειμένου για τον
- εκτυπωτή:</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 xml:id="printing-advanced-restricting">
- <title>Έλεγχος Πρόσβασης και Περιορισμοί στη Χρήση των Εκτυπωτών</title>
-
- <indexterm>
- <primary>εκτυπωτές</primary>
- <secondary>έλεγχος πρόσβασης</secondary>
- </indexterm>
- <para>Αυτή η ενότητα δίνει πληροφορίες για τον έλεγχο πρόσβασης και τον
- περιορισμό χρήσης των εκτυπωτών. Το σύστημα
- <application>LPD</application> σας επιτρέπει να ελέγχετε ποιός μπορεί
- να έχει πρόσβαση σε κάθε εκτυπωτή, τόσο τοπικά όσο και απομακρυσμένα,
- και επίσης αν μπορούν οι χρήστες να εκτυπώνουν πολλαπλά αντίγραφα,
- πόσο μεγάλες μπορούν να είναι οι εργασίες τους, και πόσο μεγάλες
- μπορούν να γίνουν οι ουρές αναμονής (print queues).</para>
-
- <sect3 xml:id="printing-advanced-restricting-copies">
- <title>Περιορισμός Εκτύπωσης Πολλαπλών Αντιγράφων</title>
-
- <para>Το σύστημα <application>LPD</application> διευκολύνει τους
- χρήστες να εκτυπώσουν πολλαπλά αντίγραφα ενός αρχείου. Οι χρήστες
- μπορούν να εκτυπώνουν εργασίες με
- <command>lpr -#5</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> για τον κόμβο
- <systemitem>rose</systemitem>. Ο εκτυπωτής <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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/var/spool/lpd/bamboo</filename>:sc:\
- :lp=<filename>/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>
- του κόμβου <systemitem>orchid</systemitem> (και ενώ βρισκόμαστε σε αυτό,
- επιτρέψτε μας να απενεργοποιήσουμε τα πολλαπλά αντίγραφα για τον
- εκτυπωτή <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>/dev/lpt0</filename>:sd=<filename>/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>/var/spool/lpd/rattan</filename>:
-
-bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
- :lp=:rm=rose:rp=bamboo:sd=<filename>/var/spool/lpd/bamboo</filename>:sc:</programlisting>
-
- <para>Χρησιμοποιώντας την ικανότητα <literal>sc</literal>,
- προλαμβάνουμε την χρήση των εντολών
- <command>lpr -#</command>,
- αλλά δεν έχουμε ακόμη την δυνατότητα να παρεμποδίσουμε τους χρήστες
- να τρέξουν την εντολή &man.lpr.1; πολλές φορές, ή να αποστείλουν
- το ίδιο αρχείο πολλές φορές σε μία μοναδική εργασία, όπως
- εδώ:</para>
-
- <screen>&prompt.user; <userinput>lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</userinput></screen>
-
- <para>Υπάρχουν πολλοί τρόποι πρόληψης αυτών των ενεργειών
- (συμπεριλαμβάνοντας και την περίπτωση να το αγνοήσετε) που είστε
- ελεύθεροι να εξερευνήσετε.</para>
- </sect3>
-
- <sect3 xml:id="printing-advanced-restricting-access">
- <title>Περιορίζοντας την Πρόσβαση σε Εκτυπωτές</title>
-
- <para>Μπορείτε να ελέγχετε ποιός μπορεί να εκτυπώνει σε ποιόν
- εκτυπωτή χρησιμοποιώντας τους μηχανισμούς ομάδων (groups) του &unix;
- και την ικανότητα <literal>rg</literal> στο
- <filename>/etc/printcap</filename>. Απλά τοποθετήστε τους χρήστες
- που θέλετε να έχουν πρόσβαση σε κάποιον εκτυπωτή σε μια
- συγκεκριμένη ομάδα (χρηστών), και δηλώστε αυτή την ομάδα στην
- ικανότητα <literal>rg</literal>.</para>
-
- <para>Όλοι οι χρήστες που δεν ανήκουν στην ομάδα (συμπεριλαμβανομένου
- και του <systemitem class="username">root</systemitem>) θα δέχονται το ακόλουθο μήνυμα:
- <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> για τον κόμβο
- <systemitem>rose</systemitem>:</para>
-
- <programlisting>#
-# /etc/printcap for host rose - restricted group for bamboo
-#
-rattan|line|diablo|lp|Diablo 630 Line Printer:\
- :sh:sd=<filename>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/var/spool/lpd/bamboo</filename>:sc:rg=artists:\
- :lp=<filename>/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> από το άλλο παράδειγμα
- (για τον υπολογιστή <systemitem>orchid</systemitem>). Φυσικά, οποιοσδήποτε
- χρήστης του <systemitem>orchid</systemitem> μπορεί να εκτυπώσει στον
- <literal>bamboo</literal>. Ίσως όμως να επιτρέπουμε μόνον σε
- συγκεκριμένους χρήστες την πρόσβαση στον υπολογιστή
- <systemitem>orchid</systemitem>, και θέλουμε αυτοί οι χρήστες να έχουν
- πρόσβαση στον εκτυπωτή. Ή ίσως πάλι, και όχι.</para>
-
- <note>
- <para>Επιτρέπεται μόνο μια περιορισμένη ομάδα ανά εκτυπωτή.</para>
- </note>
- </sect3>
-
- <sect3 xml: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; των <systemitem class="groupname">artists</systemitem> τείνουν
- προς μεγάλα μεγέθη, θα θέσουμε ένα όριο πέντε 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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/var/spool/lpd/bamboo</filename>:sc:rg=artists:mx#5000:\
- :lp=<filename>/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 xml: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> στον υπολογιστή
- <systemitem>rose</systemitem>:</para>
-
- <programlisting>orchid
-violet
-madrigal.fishbaum.de</programlisting>
-
- <para>Αυτό σημαίνει πως ο <systemitem>rose</systemitem> δέχεται
- αιτήσεις από τους υπολογιστές <systemitem>orchid</systemitem>,
- <systemitem>violet</systemitem>, και
- <systemitem class="fqdomainname">madrigal.fishbaum.de</systemitem>. Αν
- κάποιος άλλος υπολογιστής προσπαθήσει να αποκτήσει πρόσβαση
- στο <application>LPD</application> του <systemitem>rose</systemitem>,
- η εργασία θα απορριφθεί.</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>/var/spool/lpd/bamboo</filename>:sc:rg=artists:mx#5000:\
- :lp=<filename>/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>echo 6144 &gt; /var/spool/lpd/bamboo/minfree</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 xml: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>Αγνοεί το όνομα του υπολογιστή στα αρχεία καταγραφής. Με
- αυτή την επιλογή, ο χρήστης <systemitem class="username">smith</systemitem> στον
- υπολογιστή <systemitem>alpha</systemitem> είναι ο ίδιος χρήστης με τον
- <systemitem class="username">smith</systemitem> στον υπολογιστή
- <systemitem>gamma</systemitem>. Χωρίς την επιλογή αυτή, είναι
- διαφορετικοί χρήστες.</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 -m</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>pac -p1.50</userinput></screen>
-
- ορίζει κόστος κάθε σελίδας ένα δολάριο και πενήντα σεντς.
- Μπορείτε πραγματικά να έχετε πολλά έσοδα χρησιμοποιώντας αυτές τις
- χρεώσεις.</para>
-
- <para>Τέλος, εκτελώντας <command>pac -s</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 xml: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 xml:id="printing-lpr">
- <title>Εκτύπωση Εργασιών</title>
-
- <para>Για να εκτυπώσετε αρχεία, πληκτρολογήστε:</para>
-
- <screen>&prompt.user; <userinput>lpr filename ...</userinput></screen>
-
- <indexterm><primary>printing</primary></indexterm>
- <para>Θα εκτυπωθούν όλα τα αναφερόμενα αρχεία στον προεπιλεγμένο
- εκτυπωτή. Αν δεν αναφέρετε αρχεία, το &man.lpr.1; διαβάζει
- δεδομένα από το standard input. Για παράδειγμα, αυτή η εντολή
- θα εκτυπώσει μερικά σημαντικά αρχεία του συστήματος:</para>
-
- <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen>
-
- <para>Για να επιλέξετε ένα συγκεκριμένο εκτυπωτή, πληκτρολογήστε:</para>
-
- <screen>&prompt.user; <userinput>lpr -P printer-name filename ...</userinput></screen>
-
- <para>Στο παράδειγμα μας θα εκτυπωθεί μια μεγάλη λίστα αρχείων του
- τρέχοντος καταλόγου στον εκτυπωτή που ονομάζεται
- <literal>rattan</literal>:</para>
-
- <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
-
- <para>Αφού δεν αναφέρονται ονόματα αρχείων στην εντολή &man.lpr.1;,
- το <command>lpr</command> διαβάζει τα δεδομένα που θα εκτυπώσει από
- το standard input, τα οποία είναι η έξοδος της εντολής
- <command>ls -l</command>.</para>
-
- <para>Η εντολή &man.lpr.1; μπορεί να δεχθεί ένα μεγάλο αριθμό επιλογών
- για να ελέγχει την μορφοποίηση, να μετατρέπει αρχεία, να δημιουργεί
- πολλαπλά αντίγραφα, κ.λ.π. Για περισσότερες πληροφορίες, δείτε την
- ενότητα <link linkend="printing-lpr-options">Επιλογές Εκτύπωσης</link>.</para>
- </sect2>
-
- <sect2 xml: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>lpq -P bamboo</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;. Η τρίτη εργασία
- προέρχεται από τον χρήστη <systemitem class="username">mary</systemitem>, και πρόκειται
- για μια πολύ ογκώδη εργασία. Το όνομα διαδρομής του αρχείου που
- πρόκειται να εκτυπωθεί είναι πολύ μεγάλο για να χωρέσει στη στήλη,
- και για αυτό η εντολή &man.lpq.1; απλά το συμβολίζει με τρεις
- τελείες.</para>
-
- <para>Η πρώτη γραμμή της εξόδου από την &man.lpq.1; είναι επίσης πολύ
- χρήσιμη: μας ενημερώνει για το τι κάνει την παρούσα στιγμή ο
- εκτυπωτής (ή τουλάχιστον για το τι πιστεύει το
- <application>LPD</application> πως κάνει ο εκτυπωτής αυτή τη
- στιγμή).</para>
-
- <para>Η εντολή &man.lpq.1; επίσης υποστηρίζει την επιλογή
- <option>-l</option> για να δημιουργήσει μια μεγάλη, λεπτομερή λίστα.
- Ακολουθεί ένα παράδειγμα του
- <command>lpq -l</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 xml:id="printing-lprm">
- <title>Αφαίρεση Εργασιών</title>
-
- <para>Αν αλλάξετε γνώμη για μια εργασία που είχατε αποστείλει προς
- εκτύπωση, μπορείτε να την αφαιρέσετε από την λίστα αναμονής με την
- εντολή &man.lprm.1;. Μπορείτε ακόμη να χρησιμοποιήσετε την
- &man.lprm.1; για να αφαιρέσετε μια ενεργή εργασία, αλλά πιθανόν
- κάποιο μέρος της να εκτυπωθεί έτσι και αλλιώς.</para>
-
- <para>Για να αφαιρέσετε μια εργασία από τον προεπιλεγμένο εκτυπωτή,
- χρησιμοποιήστε πρώτα την &man.lpq.1; για να βρείτε τον αριθμό της.
- Έπειτα πληκτρολογήστε:</para>
-
- <screen>&prompt.user; <userinput>lprm job-number</userinput></screen>
-
- <para>Για να αφαιρέσετε μια εργασία από κάποιον συγκεκριμένο εκτυπωτή,
- προσθέστε την επιλογή <option>-P</option>. Η ακόλουθη εντολή αφαιρεί
- την εργασία με αριθμό 10 από την ουρά αναμονής για τον εκτυπωτή
- <literal>bamboo</literal>:</para>
-
- <screen>&prompt.user; <userinput>lprm -P bamboo 10</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>lprm -P rattan -</userinput></screen>
-
- <note>
- <para>Αν εργάζεστε σε περιβάλλον δικτύου, η &man.lprm.1; θα σας
- επιτρέψει να αφαιρέσετε εργασίες μόνο από τον υπολογιστή που
- τις έχετε στείλει, ανεξάρτητα αν ο εκτυπωτής είναι προσβάσιμος και
- από άλλους υπολογιστές. Η ακόλουθη εντολή επιδεικνύει ακριβώς αυτό
- το χαρακτηριστικό:</para>
-
- <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput>
-&prompt.user; <userinput>rlogin orchid</userinput>
-&prompt.user; <userinput>lpq -P rattan</userinput>
-Rank Owner Job Files Total Size
-active seeyan 12 ... 49123 bytes
-2nd kelly 13 myfile 12 bytes
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-rose: Permission denied
-&prompt.user; <userinput>logout</userinput>
-&prompt.user; <userinput>lprm -P rattan 13</userinput>
-dfA013rose dequeued
-cfA013rose dequeued
- </screen>
- </note>
- </sect2>
-
- <sect2 xml:id="printing-lpr-options">
- <title>Πέρα από το Απλό Κείμενο: Περισσότερες Επιλογές Εκτύπωσης</title>
-
- <para>Η εντολή &man.lpr.1; υποστηρίζει μια γκάμα επιλογών για τον έλεγχο
- μορφοποίησης κειμένου, μετατροπής γραφικών και άλλων μορφών αρχείων,
- παραγωγής πολλαπλών αντιγράφων, χειρισμού εργασιών, και άλλα. Οι
- επιλογές αυτές περιγράφονται στην παρούσα ενότητα.</para>
-
- <sect3 xml:id="printing-lpr-options-format">
- <title>Επιλογές Μορφοποίησης και Μετατροπής</title>
-
- <para>Οι ακόλουθες επιλογές της &man.lpr.1; ελέγχουν την μορφοποίηση
- των αρχείων της εργασίας εκτύπωσης. Χρησιμοποιήστε τις αν η εργασία
- σας δεν περιέχει απλό κείμενο ή αν επιθυμείτε να μορφοποιήσετε απλό
- κείμενο διαμέσου του εργαλείου &man.pr.1;.</para>
-
- <indexterm><primary>&tex;</primary></indexterm>
- <para>Για παράδειγμα, η ακόλουθη εντολή τυπώνει ένα αρχείο DVI (από το
- σύστημα στοιχειοθεσίας &tex;) με όνομα
- <filename>fish-report.dvi</filename>
- στον εκτυπωτή με όνομα <literal>bamboo</literal>:</para>
-
- <screen>&prompt.user; <userinput>lpr -P bamboo -d fish-report.dvi</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>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</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 xml: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>parser.c</filename>
- και τρία αντίγραφα του
- <filename>parser.h</filename>:</para>
-
- <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</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 xml: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 xml: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> η ουρά αναμονής,
- κανείς χρήστης (εκτός του <systemitem class="username">root</systemitem>) δεν μπορεί να
- αποστείλει εργασίες στον εκτυπωτή. Μια <emphasis>ενεργή</emphasis>
- ουρά αναμονής επιτρέπει να αποσταλούν εργασίες στον εκτυπωτή. Ένας
- εκτυπωτής μπορεί να <emphasis>ξεκινήσει</emphasis> με ουρά
- αναμονής απενεργοποιημένη, και σε αυτή την περίπτωση θα συνεχίσει να
- εκτυπώνει τις εργασίες της ουράς έως ότου αυτή αδειάσει.</para>
-
- <para>Γενικά, πρέπει να έχετε προνόμια <systemitem class="username">root</systemitem> για να
- χρησιμοποιήσετε την εντολή &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 printer-name</command></term>
-
- <listitem>
- <para>Διαγράφει την τρέχουσα εργασία και σταματάει τον εκτυπωτή.
- Οι χρήστες μπορούν ακόμη να αποστείλουν εργασίες αν η ουρά
- αναμονής είναι ακόμη ενεργή.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>clean printer-name</command></term>
-
- <listitem>
- <para>Διαγράφει τα παλιά αρχεία από τον κατάλογο spool του
- εκτυπωτή. Σε κάποιες περιπτώσεις, τα αρχεία από τα οποία
- αποτελείται κάποια εργασία δεν αφαιρούνται κανονικά από το
- <application>LPD</application>, ειδικά αν υπήρξαν σφάλματα κατά
- την εκτύπωση ή κάποιες ενέργειες από τον διαχειριστή. Αυτή η
- εντολή βρίσκει αρχεία που δεν ανήκουν στον κατάλογο spool και
- τα αφαιρεί.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>disable printer-name</command></term>
-
- <listitem>
- <para>Απενεργοποιεί την ουρά αναμονής για νέες εργασίες. Αν ο
- εκτυπωτής δουλεύει, θα συνεχίσει να εκτυπώνει τις
- εναπομείναντες εργασίες στην ουρά αναμονής. Ο superuser
- (<systemitem class="username">root</systemitem>) μπορεί πάντα να στέλνει εργασίες,
- ακόμη και σε απενεργοποιημένη σειρά αναμονής.</para>
-
- <para>Αυτή η εντολή είναι χρήσιμη, όταν ελέγχετε ένα νέο εκτυπωτή
- ή όταν εγκαθιστάτε ένα φίλτρο: απενεργοποιήστε την ουρά
- αναμονής και στείλτε εργασίες σαν <systemitem class="username">root</systemitem>.
- Οι υπόλοιποι χρήστες δεν θα έχουν δυνατότητα να αποστείλουν
- εργασίες έως ότου ολοκληρώσετε τους ελέγχους σας και
- επανενεργοποιήσετε την ουρά αναμονής με την εντολή
- <command>enable</command>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>down printer-name
- message</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
- printer-name</command></term>
-
- <listitem>
- <para>Ενεργοποίηση της ουράς αναμονής του εκτυπωτή. Οι χρήστες
- μπορούν να αποστείλουν εργασίες αλλά ο εκτυπωτής δεν θα τυπώσει
- έως ότου ξεκινήσει.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>help
- command-name</command></term>
-
- <listitem>
- <para>Τυπώνει σελίδες βοηθείας για την εντολή
- <replaceable>command-name</replaceable>. Δίχως το
- <replaceable>command-name</replaceable>, εκτυπώνει μια περίληψη
- όλων των διαθέσιμων εντολών.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>restart printer-name</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 printer-name</command></term>
-
- <listitem>
- <para>Ξεκινά τον εκτυπωτή. Ο εκτυπωτής θα τυπώσει εργασίες από
- την ουρά αναμονής του.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>stop
- printer-name</command></term>
-
- <listitem>
- <para>Σταματάει τον εκτυπωτή. Ο εκτυπωτής θα ολοκληρώσει την
- τρέχουσα εργασία του και δεν θα τυπώσει καμία άλλη εργασία από
- την ουρά αναμονής του. Ακόμη και αν ο εκτυπωτής είναι
- σταματημένος, οι χρήστες μπορούν ακόμη να στέλνουν εργασίες αν
- είναι ενεργοποιημένη η ουρά αναμονής.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><command>topq printer-name
- job-or-username</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 printer-name</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 xml:id="printing-lpd-alternatives">
- <title>Εναλλακτικές Λύσεις για τον Στάνταρ Spooler</title>
-
- <para>Αν έχετε μελετήσει πιστά όλο το κεφάλαιο μέχρι εδώ, θα έχετε μάθει
- σχεδόν τα πάντα σχετικά με το σύστημα παροχέτευσης
- <application>LPD</application> που διατίθεται με το &os;. Θα έχετε
- κατανοήσει και πολλές από τις ελλείψεις του, που φυσικά γεννούν το
- ερώτημα: <quote>Ποια άλλα συστήματα παροχέτευσης (που να λειτουργούν
- στο &os;) υπάρχουν διαθέσιμα;</quote></para>
-
- <variablelist>
- <varlistentry>
- <term>LPRng</term>
-
- <listitem>
- <para>Το <application>LPRng</application><indexterm><primary>LPRng</primary></indexterm>, το οποίο σκόπιμα
- σημαίνει <quote>LPR: the Next Generation (η Επόμενη
- Γενιά)</quote> είναι μια από την αρχή υλοποίηση του PLP.
- Ο Patrick Powell και ο Justin Mason (κύριος συντηρητής του PLP)
- συνεργάστηκαν για να φτιάξουν το
- <application>LPRng</application>. Η κύρια τοποθεσία του
- <application>LPRng</application> είναι η <uri xlink:href="http://www.lprng.org/">http://www.lprng.org/</uri>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>CUPS</term>
-
- <listitem>
- <para>Το <application>CUPS</application><indexterm><primary>CUPS</primary></indexterm>, ή αλλιώς 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> είναι η
- <uri xlink:href="http://www.cups.org/">http://www.cups.org/</uri>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>HPLIP</term>
-
- <listitem>
- <para>Το <application>HPLIP</application><indexterm><primary>HPLIP</primary></indexterm>, ή Σύστημα Απεικόνισης
- και Εκτύπωσης της HP για &linux;, είναι μια σουίτα εφαρμογών
- για συσκευές της HP, που υποστηρίζει λειτουργίες όπως η εκτύπωση,
- η σάρωση και η αποστολή / λήψη φαξ. Η σουίτα αυτή χρησιμοποιεί
- το <application>CUPS</application> ως backend για κάποιες από τις
- λειτουργίες εκτύπωσης που παρέχει.</para>
-
- <para>Η κύρια δικτυακή τοποθεσία της εφαρμογής
- <application>HPLIP</application> είναι <uri xlink:href="http://hplipopensource.com/hplip-web/index.html">http://hplipopensource.com/hplip-web/index.html</uri>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-
- <sect1 xml: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> ενός υπολογιστή με όνομα
- <systemitem>orchid</systemitem>. Έχει ένα μόνο εκτυπωτή στην πρώτη
- παράλληλη θύρα του, ένα Hewlett Packard LaserJet 3Si με όνομα
- <literal>teak</literal>. Χρησιμοποιεί το παραπάνω script ως
- φίλτρο κειμένου:</para>
-
- <programlisting>#
-# /etc/printcap for host orchid
-#
-teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
- :lp=<filename>/dev/lpt0</filename>:sh:sd=<filename>/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>/var/spool/lpd/rattan</filename>:\
- :lp=<filename>/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>/dev/console</filename>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/security/chapter.xml b/el_GR.ISO8859-7/books/handbook/security/chapter.xml
deleted file mode 100644
index 466860a4c1..0000000000
--- a/el_GR.ISO8859-7/books/handbook/security/chapter.xml
+++ /dev/null
@@ -1,4899 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Ασφάλεια
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/security/chapter.xml
- %SRCID% 1.1
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="security">
- <info><title>Ασφάλεια</title>
- <authorgroup>
- <author><personname><firstname>Matthew</firstname><surname>Dillon</surname></personname><contrib>Το μεγαλύτερο μέρος αυτού του κεφαλαίου προέρχεται από την
- σελίδα του manual της security(7) από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <indexterm><primary>ασφάλεια</primary></indexterm>
-
- <sect1 xml: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 xml: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
- <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem>.
- 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 <systemitem class="username">root</systemitem>. The distinction is important
- because without access to <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> on a machine.
- The attacker may know the <systemitem class="username">root</systemitem> password,
- the attacker may find a bug in a root-run server and be able
- to break <systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> once he has broken into a user's account.
- If an attacker has found a way to break <systemitem class="username">root</systemitem>
- on a machine, the attacker may not have a need
- to install a backdoor. Many of the <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> and staff accounts.</para>
- </listitem>
-
- <listitem>
- <para>Securing <systemitem class="username">root</systemitem>&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 xml: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 xml:id="securing-root-and-staff">
- <title>Securing the <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> account.
- Most systems have a password assigned to the <systemitem class="username">root</systemitem>
- 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
- <systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem> logins should only be allowed
- via the system console.</para>
- <indexterm>
- <primary><systemitem class="groupname">wheel</systemitem></primary>
- </indexterm>
-
- <para>Of course, as a sysadmin you have to be able to get to
- <systemitem class="username">root</systemitem>, so we open up a few holes.
- But we make sure these holes require additional password
- verification to operate. One way to make <systemitem class="username">root</systemitem>
- accessible is to add appropriate staff accounts to the
- <systemitem class="groupname">wheel</systemitem> group (in
- <filename>/etc/group</filename>). The staff members placed in the
- <systemitem class="groupname">wheel</systemitem> group are allowed to
- <command>su</command> to <systemitem class="username">root</systemitem>.
- You should never give staff
- members native <systemitem class="groupname">wheel</systemitem> access by putting them in the
- <systemitem class="groupname">wheel</systemitem> group in their password entry. Staff
- accounts should be placed in a <systemitem class="groupname">staff</systemitem> group, and
- then added to the <systemitem class="groupname">wheel</systemitem> group via the
- <filename>/etc/group</filename> file. Only those staff members
- who actually need to have <systemitem class="username">root</systemitem> access
- should be placed in the
- <systemitem class="groupname">wheel</systemitem> group. It is also possible, when using
- an authentication method such as Kerberos, to use Kerberos'
- <filename>.k5login</filename> file in the <systemitem class="username">root</systemitem>
- account to allow a &man.ksu.1; to <systemitem class="username">root</systemitem>
- without having to place anyone at all in the
- <systemitem class="groupname">wheel</systemitem> group. This may be the better solution
- since the <systemitem class="groupname">wheel</systemitem> mechanism still allows an
- intruder to break <systemitem class="username">root</systemitem> if the intruder
- has gotten hold of your
- password file and can break into a staff account. While having
- the <systemitem class="groupname">wheel</systemitem> 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
- <systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> 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 <systemitem class="username">root</systemitem>.
- 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 <systemitem class="username">root</systemitem>, 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 <systemitem class="username">root</systemitem> and rely on other
- mechanisms to detect break-ins that might occur through them.</para>
-
- <para>The other big potential <systemitem class="username">root</systemitem> 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,
- <systemitem class="username">root</systemitem> holes are occasionally found in these
- binaries. A <systemitem class="username">root</systemitem> 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 <systemitem class="groupname">tty</systemitem>
- 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 xml: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 <systemitem class="username">root</systemitem>, 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 <systemitem class="username">root</systemitem> 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 <filename>bpf</filename> 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
- <filename>bpf</filename> device compiled in.</para>
-
- <indexterm>
- <primary><command>sysctl</command></primary>
- </indexterm>
- <para>But even if you turn off the <filename>bpf</filename>
- 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 <filename>bpf</filename>
- 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 xml: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
- <systemitem class="username">root</systemitem> 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
- <systemitem class="username">root</systemitem> 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 xml:id="crypt">
- <info><title>DES, MD5, and Crypt</title>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Swingle</surname></personname><contrib>Parts rewritten and updated by </contrib></author>
- </authorgroup>
-
- </info>
-
-
- <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 xml: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 xml:id="tcpwrappers">
- <info><title>TCP Wrappers</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by: </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>TCP Wrappers</primary></indexterm>
-
- <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
- <package>mail/qpopper</package> 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
- <systemitem class="fqdomainname">*.example.com</systemitem> 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 xml:id="kerberosIV">
- <info><title><application>KerberosIV</application></title>
- <authorgroup>
- <author><personname><firstname>Mark</firstname><surname>Murray</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Mark</firstname><surname>Dapoz</surname></personname><contrib>Based on a contribution by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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
- <package>security/krb5</package>.</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 <systemitem class="fqdomainname">grunt.example.com</systemitem>. 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 <systemitem class="fqdomainname">grunt.example.com</systemitem>
- to the <literal>EXAMPLE.COM</literal> realm and also add an entry to
- put all hosts in the <systemitem class="fqdomainname">.example.com</systemitem>
- 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>client-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 <systemitem class="username">jane</systemitem>. 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 <systemitem class="username">jane</systemitem> 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 <systemitem class="username">root</systemitem> privileges their own
- <emphasis>separate</emphasis> &man.su.1; password.
- We could now add an ID which is authorized to
- &man.su.1; to <systemitem class="username">root</systemitem>. This is
- controlled by having an instance of <systemitem class="username">root</systemitem>
- 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 <systemitem class="username">root</systemitem>'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><systemitem class="username">root</systemitem> will allow
- that <literal>&lt;username&gt;</literal> to &man.su.1; to
- <systemitem class="username">root</systemitem> if the necessary entries are in the
- <filename>.klogin</filename> file in <systemitem class="username">root</systemitem>'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 <systemitem class="username">jane</systemitem> or
- <systemitem class="username">jack</systemitem> (via <command>kinit</command>, see above)
- to access to <systemitem class="username">jane</systemitem>'s
- account or files on this system (<systemitem>grunt</systemitem>) via
- &man.rlogin.1;, &man.rsh.1; or
- &man.rcp.1;.</para>
-
- <para>For example, <systemitem class="username">jane</systemitem> 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 <systemitem class="username">jack</systemitem> logs into <systemitem class="username">jane</systemitem>'s account on the same machine
- (<systemitem class="username">jane</systemitem> 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 xml:id="kerberos5">
- <info><title><application>Kerberos5</application></title>
- <authorgroup>
- <author><personname><firstname>Tillman</firstname><surname>Hodgson</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Mark</firstname><surname>Murray</surname></personname><contrib>Based on a contribution by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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
- <package>security/krb4</package> 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
- (<package>security/krb5</package>). 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
- (<package>security/heimdal</package>), 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 <systemitem class="fqdomainname">kerberos.example.org</systemitem>.
- 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
- <systemitem class="fqdomainname">example.org</systemitem> 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&gt; <userinput>init EXAMPLE.ORG</userinput>
-Realm max ticket life [unlimited]:
-kadmin&gt; <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 tillman</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&gt;<userinput> add --random-key host/myserver.example.org</userinput>
-Max ticket life [unlimited]:
-Max renewable life [unlimited]:
-Attributes []:
-kadmin&gt;<userinput> ext host/myserver.example.org</userinput>
-kadmin&gt;<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
- (<systemitem class="username">host/myserver.EXAMPLE.ORG</systemitem>) 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&gt;<userinput> ext --keytab=/tmp/example.keytab host/myserver.example.org</userinput>
-kadmin&gt;<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
- <systemitem class="username">tillman@EXAMPLE.ORG</systemitem>) mapped to a local
- user account (such as a local account named
- <systemitem class="username">tillman</systemitem>). 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,
- <systemitem class="username">tillman@EXAMPLE.ORG</systemitem> may need access to the
- local user account <systemitem class="username">webdevelopers</systemitem>. 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
- <systemitem class="username">webdevelopers</systemitem> 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
- <systemitem class="username">host/</systemitem> principal and update your keytab.
- This also applies to special keytab entries like the
- <systemitem class="username">www/</systemitem> principal used for Apache's
- <package>www/mod_auth_kerb</package>.</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
- <systemitem class="username">root</systemitem>. 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 <systemitem class="username">krbtgt</systemitem>
- 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
- (<uri xlink:href="http://web.mit.edu/Kerberos/www/">http://web.mit.edu/Kerberos/www/</uri>)
- 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>
- <package>security/krb5</package> 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>/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
- <package>security/tripwire</package> 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><link xlink:href="http://www.faqs.org/faqs/Kerberos-faq/general/preamble.html">
- The <application>Kerberos</application> FAQ</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://web.mit.edu/Kerberos/www/dialogue.html">Designing
- an Authentication System: a Dialog in Four Scenes</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.ietf.org/rfc/rfc1510.txt?number=1510">RFC 1510,
- The <application>Kerberos</application> Network Authentication Service
- (V5)</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://web.mit.edu/Kerberos/www/"><acronym>MIT</acronym>
- <application>Kerberos</application> home page</link></para>
- </listitem>
-
- <listitem>
- <para><link xlink:href="http://www.pdc.kth.se/heimdal/">Heimdal
- <application>Kerberos</application> home page</link></para>
- </listitem>
-
- </itemizedlist>
- </sect2>
- </sect1>
-
- <sect1 xml:id="openssl">
- <info><title>OpenSSL</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Written by: </contrib></author>
- </authorgroup>
- </info>
-
- <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
- <package>www/apache13-ssl</package>, and
- <package>mail/sylpheed-claws</package>
- will offer compilation support for building with
- <application>OpenSSL</application>.</para>
-
- <note>
- <para>In most cases the Ports Collection will attempt to build
- the <package>security/openssl</package> port
- unless the <varname>WITH_OPENSSL_BASE</varname> 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
- <varname>MAKE_IDEA</varname> 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 <link xlink:href="http://www.verisign.com">VeriSign</link>, 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>US</userinput>
-State or Province Name (full name) [Some-State]:<userinput>PA</userinput>
-Locality Name (eg, city) []:<userinput>Pittsburgh</userinput>
-Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput>My Company</userinput>
-Organizational Unit Name (eg, section) []:<userinput>Systems Administrator</userinput>
-Common Name (eg, YOUR name) []:<userinput>localhost.example.org</userinput>
-Email Address []:<userinput>trhodes@FreeBSD.org</userinput>
-
-Please enter the following 'extra' attributes
-to be sent with your certificate request
-A challenge password []:<userinput>SOME PASSWORD</userinput>
-An optional company name []:<userinput>Another Name</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 myRSA.key 1024</userinput></screen>
-
- <para>Next, generate the <acronym>CA</acronym> key:</para>
-
- <screen>&prompt.root; <userinput>openssl gendsa -des3 -out myca.key myRSA.key</userinput></screen>
-
- <para>Use this key to create the certificate:</para>
-
- <screen>&prompt.root; <userinput>openssl req -new -x509 -days 365 -key myca.key -out new.crt</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>/etc</filename>, which is readable
- only by <systemitem class="username">root</systemitem>. 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>/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>/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 example.com 25</userinput>
-Trying 192.0.34.166...
-Connected to <systemitem class="fqdomainname">example.com</systemitem>.
-Escape character is '^]'.
-220 <systemitem class="fqdomainname">example.com</systemitem> ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
-<userinput>ehlo example.com</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 <systemitem class="fqdomainname">example.com</systemitem> 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 xml:id="ipsec">
- <info><title>VPN over IPsec</title>
- <authorgroup>
- <author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname><affiliation>
- <address><email>nik@FreeBSD.org</email></address>
- </affiliation><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>IPsec</primary>
- </indexterm>
-
- <para>Creating a VPN between two networks, separated by the
- Internet, using FreeBSD gateways.</para>
-
- <sect2>
- <info><title>Understanding IPsec</title>
- <authorgroup>
- <author><personname><firstname>Hiten M.</firstname><surname>Pandya</surname></personname><affiliation>
- <address><email>hmp@FreeBSD.org</email></address>
- </affiliation><contrib>Written by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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
- <link xlink:href="http://www.kame.net/">KAME</link> 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 <systemitem class="ipaddress">192.168.1.x</systemitem>), 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 (<systemitem class="ipaddress">192.168.1.x</systemitem> and <systemitem class="ipaddress">192.168.2.x</systemitem> respectively). All the
- machines on the private networks have been configured to use the
- <systemitem class="ipaddress">.1</systemitem> 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 <systemitem class="ipaddress">192.168.1.20</systemitem> 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 <systemitem class="ipaddress">A.B.C.D</systemitem>, private IP address <systemitem class="ipaddress">192.168.1.1</systemitem>), and you ran <command>ping
- 192.168.2.1</command>, which is the private address of the machine
- with IP address <systemitem class="ipaddress">W.X.Y.Z</systemitem>. What
- needs to happen in order for this to work?</para>
-
- <orderedlist>
- <listitem>
- <para>The gateway machine needs to know how to reach <systemitem class="ipaddress">192.168.2.1</systemitem>. In other words, it needs
- to have a route to <systemitem class="ipaddress">192.168.2.1</systemitem>.</para>
- </listitem>
- <listitem>
- <para>Private IP addresses, such as those in the <systemitem class="ipaddress">192.168.x</systemitem> range are not supposed to
- appear on the Internet at large. Instead, each packet you
- send to <systemitem class="ipaddress">192.168.2.1</systemitem> will need
- to be wrapped up inside another packet. This packet will need
- to appear to be from <systemitem class="ipaddress">A.B.C.D</systemitem>,
- and it will have to be sent to <systemitem class="ipaddress">W.X.Y.Z</systemitem>. This process is called
- <firstterm>encapsulation</firstterm>.</para>
- </listitem>
- <listitem>
- <para>Once this packet arrives at <systemitem class="ipaddress">W.X.Y.Z</systemitem> it will need to
- <quote>unencapsulated</quote>, and delivered to <systemitem class="ipaddress">192.168.2.1</systemitem>.</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 <systemitem class="ipaddress">A.B.C.D</systemitem> and <systemitem class="ipaddress">W.X.Y.Z</systemitem>, 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
- <filename>gif</filename> devices on FreeBSD. As you can
- imagine, the <filename>gif</filename> 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 gif0 create</userinput>
-&prompt.root; <userinput>ifconfig gif0 tunnel A.B.C.D W.X.Y.Z</userinput>
-&prompt.root; <userinput>ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff</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 gif0 create</userinput>
-&prompt.root; <userinput>ifconfig gif0 tunnel W.X.Y.Z A.B.C.D</userinput>
-&prompt.root; <userinput>ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff</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 <systemitem class="ipaddress">A.B.C.D</systemitem> and
- <systemitem class="ipaddress">W.X.Y.Z</systemitem>, and the traffic allowed
- through the tunnel is that between <systemitem class="ipaddress">192.168.1.1</systemitem> and <systemitem class="ipaddress">192.168.2.1</systemitem>.</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 <systemitem class="ipaddress">192.168.1.1</systemitem>, 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 <systemitem class="ipaddress">192.168.2.0</systemitem>, send the
- packets to the host <systemitem class="ipaddress">192.168.2.1</systemitem></quote>. You will need to
- run a similar command on the other gateway, but with the
- <systemitem class="ipaddress">192.168.1.x</systemitem> 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
- <package>security/ipsec-tools</package> 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
- <systemitem class="username">root</systemitem>) 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 <systemitem class="ipaddress">192.168.x.y</systemitem>
- 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
- <filename>gif</filename> 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 <systemitem class="ipaddress">A.B.C.D</systemitem>, and it is destined for <systemitem class="ipaddress">W.X.Y.Z</systemitem>, then encrypt it, using the
- necessary security associations.</quote></para>
-
- <para><quote>If a packet arrives from <systemitem class="ipaddress">W.X.Y.Z</systemitem>, and it is destined for <systemitem class="ipaddress">A.B.C.D</systemitem>, 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 <systemitem class="ipaddress">W.X.Y.Z</systemitem>, 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 <systemitem class="ipaddress">A.B.C.D</systemitem>, and that packet is encapsulating
- another packet, and it is destined for <systemitem class="ipaddress">W.X.Y.Z</systemitem>, then encrypt it, using the
- necessary security associations.</quote></para>
-
- <para><quote>If a packet arrives from <systemitem class="ipaddress">W.X.Y.Z</systemitem>, and that packet is encapsulating
- another packet, and it is destined for <systemitem class="ipaddress">A.B.C.D</systemitem>, 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 <systemitem class="ipaddress">A.B.C.D</systemitem>) to force all
- outbound traffic to <systemitem class="ipaddress">W.X.Y.Z</systemitem> 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. <systemitem class="ipaddress">A.B.C.D/32</systemitem> and <systemitem class="ipaddress">W.X.Y.Z/32</systemitem> 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 <systemitem class="ipaddress">A.B.C.D</systemitem> and <systemitem class="ipaddress">W.X.Y.Z</systemitem> 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
- <systemitem class="ipaddress">W.X.Y.Z</systemitem>) 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
- <filename>gif</filename> 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
- <systemitem class="ipaddress">A.B.C.D</systemitem> 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 <package>security/ipsec-tools</package>. 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 xml:id="openssh">
- <info><title>OpenSSH</title>
- <authorgroup>
- <author><personname><firstname>Chern</firstname><surname>Lee</surname></personname><contrib>Contributed by </contrib></author>
- <!-- 21 April 2001 -->
- </authorgroup>
- </info>
-
-
- <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 user@example.com</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 user@example.com:/COPYRIGHT COPYRIGHT</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 xml: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 dsa</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 xml: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 xml: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 5023:localhost:23 user@foo.example.com</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
- <systemitem>localhost</systemitem> 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
- <systemitem>localhost</systemitem> is being forwarded to port
- <replaceable>23</replaceable> on <systemitem>localhost</systemitem>
- 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 5025:localhost:25 user@mailserver.example.com</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 2110:mail.example.com:110 user@ssh-server.example.com</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 <systemitem>localhost</systemitem>
- port 2110. A connection here will be forwarded securely across
- the tunnel to <systemitem>mail.example.com</systemitem>.</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 8888:music.example.com:8000 user@unfirewalled-system.example.org</userinput>
-user@unfirewalled-system.example.org's password: <userinput>*******</userinput></screen>
-
- <para>Your streaming client can now be pointed to
- <systemitem>localhost</systemitem> port 8888, which will be
- forwarded over to <systemitem>music.example.com</systemitem> 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
- <systemitem class="username">root</systemitem> user to log in from
- <systemitem class="ipaddress">192.168.1.32</systemitem>, 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 <systemitem class="username">admin</systemitem> 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><link xlink:href="http://www.openssh.com/">OpenSSH</link></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 xml:id="fs-acl">
- <info><title>File System Access Control Lists</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>ACL</primary>
- </indexterm>
-
- <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 test</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 test</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::--- test</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 <filename>stdout</filename>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="security-portaudit">
- <info><title>Monitoring Third Party Security Issues</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>Portaudit</primary>
- </indexterm>
-
- <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 <package role="port">ports-mgmt/portaudit</package> 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
- <systemitem class="username">root</systemitem>'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 xml:id="security-advisories">
- <info><title>&os; Security Advisories</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>FreeBSD Security Advisories</primary>
- </indexterm>
-
- <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 xml:id="co-topic"/>
-
-Category: core<co xml:id="co-category"/>
-Module: sys<co xml:id="co-module"/>
-Announced: 2003-09-23<co xml:id="co-announce"/>
-Credits: Person@EMAIL-ADDRESS<co xml:id="co-credit"/>
-Affects: All releases of &os;<co xml: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 xml:id="co-corrected"/>
-<acronym>CVE</acronym> Name: CVE-XXXX-XXXX<co xml: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 xml:id="co-backround"/>
-
-
-II. Problem Description<co xml:id="co-descript"/>
-
-
-III. Impact<co xml:id="co-impact"/>
-
-
-IV. Workaround<co xml:id="co-workaround"/>
-
-
-V. Solution<co xml:id="co-solution"/>
-
-
-VI. Correction details<co xml:id="co-details"/>
-
-
-VII. References<co xml: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 xml:id="security-accounting">
- <info><title>Process Accounting</title>
- <authorgroup>
- <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Contributed by </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm>
- <primary>Process Accounting</primary>
- </indexterm>
-
- <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 /var/account/acct</userinput>
-
-&prompt.root; <userinput>accton /var/account/acct</userinput>
-
-&prompt.root; <userinput>echo 'accounting_enable="YES"' &gt;&gt; /etc/rc.conf</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
- trhodes ttyp1</userinput></screen>
-
- <para>Would print out all known usage of the <command>ls</command>
- by <systemitem class="username">trhodes</systemitem> 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>
diff --git a/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.xml b/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.xml
deleted file mode 100644
index bbf6f89ef5..0000000000
--- a/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.xml
+++ /dev/null
@@ -1,3125 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Σειριακές Επικοινωνίες
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/serialcomms/chapter.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="serialcomms">
- <title>Σειριακές Επικοινωνίες</title>
-
- <sect1 xml: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 xml:id="serial">
- <title>Εισαγωγή</title>
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
- θυρών μετονομάστηκαν από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</filename> και από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</filename>.
- Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
- τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
- </warning>
- <!-- XXX Write me! -->
-
- <sect2 xml: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>
- <listitem>
- <indexterm><primary>DTE</primary></indexterm>
-
- <para>Data Terminal Equipment, Τερματικός Εξοπλισμός Δεδομένων
- &mdash; για παράδειγμα, ο υπολογιστής σας</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>DCE</term>
- <listitem>
- <indexterm><primary>DCE</primary></indexterm>
-
- <para>Data Communications Equipment, Εξοπλισμός Επικοινωνίας
- Δεδομένων &mdash; το modem σας</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>RS-232</term>
- <listitem>
- <indexterm><primary>RS-232C cables</primary></indexterm>
-
- <para>Πρότυπο της EIA για το υλικό που χρησιμοποιείται στις
- σειριακές επικοινωνίες</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Όταν αναφερόμαστε στο ρυθμό μετάδοσης δεδομένων επικοινωνίας,
- δεν χρησιμοποιούμε πάντοτε τον όρο <quote>baud</quote>. Το baud
- αναφέρεται στον αριθμό των μεταβάσεων του ηλεκτρικού σήματος στη
- μονάδα του χρόνου, ενώ κανονικά πρέπει να χρησιμοποιείται το
- <quote>bps</quote> (bits ανά δευτερόλεπτο) που είναι ο
- <emphasis>σωστός</emphasis> όρος (η τουλάχιστον δεν φαίνεται να
- ενοχλεί πολύ τους σχολαστικούς).</para>
- </sect2>
-
- <sect2 xml:id="serial-cables-ports">
- <title>Θύρες και Καλώδια</title>
-
- <para>Για να συνδέσετε ένα modem ή τερματικό στο &os; σύστημα σας, θα
- χρειαστείτε μια σειριακή θύρα στον υπολογιστή σας, και το κατάλληλο
- καλώδιο για να συνδέσετε τη σειριακή συσκευή σας. Αν είστε ήδη
- εξοικειωμένος με το υλικό σας και το καλώδιο που απαιτείται, μπορείτε
- με ασφάλεια να παραλείψετε αυτή την ενότητα.</para>
-
- <sect3 xml:id="term-cables">
- <title>Καλώδια</title>
-
- <para>Υπάρχουν αρκετοί διαφορετικοί τύποι σειριακών καλωδίων. Οι δύο
- πιο κοινοί τύποι για τους σκοπούς μας, είναι τα καλώδια τύπου
- null-modem και τα τυποποιημένα καλώδια RS-232 (γνωστά και ως
- <quote>ευθείες</quote>). Η τεκμηρίωση του υλικού σας θα πρέπει
- να περιγράφει τον τύπο του καλωδίου που απαιτείται.</para>
-
- <sect4 xml: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 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 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 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 xml: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 xml:id="term-ports">
- <title>Θύρες</title>
-
- <para>Οι σειριακές θύρες είναι οι συσκευές που μεταφέρουν τα δεδομένα
- μεταξύ του &os; συστήματος και του τερματικού. Η ενότητα αυτή
- περιγράφει τα είδη των θυρών που υπάρχουν, και πως τα χειρίζεται το
- &os;.</para>
-
- <sect4 xml: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 xml:id="term-portnames">
- <title>Ονόματα Θυρών</title>
-
- <para>Στο &os;, έχετε πρόσβαση σε κάθε σειριακή θύρα μέσω μιας
- καταχώρισης στον κατάλογο <filename>/dev</filename>. Υπάρχουν
- δύο διαφορετικά είδη καταχωρίσεων:</para>
-
- <itemizedlist>
- <listitem>
- <para>Οι θύρες που μπορούν να χρησιμοποιηθούν για είσοδο στο
- σύστημα, ονομάζονται
- <filename>/dev/ttyuN</filename>
- όπου το <replaceable>N</replaceable> είναι ο αριθμός της
- θύρας (η αρίθμηση ξεκινάει από το μηδέν). Γενικά, οι θύρες
- αυτές προορίζονται για σύνδεση με τερματικά. Οι θύρες εισόδου
- απαιτούν να είναι ενεργό το σήμα ανίχνευσης φέροντος
- (DCD) στη σειριακή γραμμή, προκειμένου να λειτουργήσουν
- σωστά.</para>
- </listitem>
-
- <listitem>
- <para>Οι θύρες κλήσης ή εξόδου, ονομάζονται
- <filename>/dev/cuauN</filename>.
- Οι θύρες αυτές δεν χρησιμοποιούνται συνήθως για τερματικά,
- αλλά για modems. Μπορείτε να χρησιμοποιήσετε αυτή τη θύρα
- για κάποιο τερματικό που δεν υποστηρίζει το σήμα ανίχνευσης
- φέροντος.</para>
- </listitem>
- </itemizedlist>
-
- <para>Αν έχετε συνδέσει ένα τερματικό στην πρώτη σειριακή θύρα
- (που στο &ms-dos; αναφέρεται ως <filename>COM1</filename>),
- θα πρέπει να χρησιμοποιήσετε την συσκευή
- <filename>/dev/ttyu0</filename> για να αναφερθείτε στο τερματικό.
- Αν το τερματικό είναι στη δεύτερη σειριακή θύρα (που είναι επίσης
- γνωστή ως <filename>COM2</filename>) χρησιμοποιήστε τη
- συσκευή <filename>/dev/ttyu1</filename>, κ.ο.κ.</para>
- </sect4>
- </sect3>
- </sect2>
-
- <sect2>
- <title>Ρύθμιση του Πυρήνα</title>
-
- <para>Το &os; από προεπιλογή υποστηρίζει τέσσερις σειριακές θύρες.
- Στον κόσμο του &ms-dos; οι θύρες αυτές είναι γνωστές ως:
- <filename>COM1</filename>,
- <filename>COM2</filename>,
- <filename>COM3</filename>, και
- <filename>COM4</filename>. Το &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>. Στις συσκευές
- <filename>sio</filename> η πρόσβαση επιτυγχάνεται μέσω των
- αρχείων
- <filename>/dev/ttyuN</filename> (για
- συσκευές εισόδου, dial-in) και
- <filename>/dev/cuauN</filename> (για
- συσκευές εξόδου, call-out). Το &os; παρέχει επίσης συσκευές
- αρχικοποίησης
- (<filename>/dev/ttyuN.init</filename> και
- <filename>/dev/cuauN.init</filename>)
- και συσκευές κλειδώματος
- (<filename>/dev/ttyuN.lock</filename> και
- <filename>/dev/cuauN.lock</filename>).
- Οι συσκευές αρχικοποίησης χρησιμοποιούνται για την ρύθμιση των
- αρχικών παραμέτρων επικοινωνίας στη θύρα, κάθε φορά που
- ανοίγει. Τέτοιες παράμετροι είναι π.χ. το
- <literal>crtscts</literal> για τα modems που χρησιμοποιούν
- σηματοδοσία <literal>RTS/CTS</literal> για έλεγχο ροής. Οι συσκευές
- κλειδώματος χρησιμοποιούνται για να κλειδώνουν κάποιες ρυθμίσεις στις
- θύρες, ώστε να μην μπορούν να αλλαχθούν από άλλους χρήστες ή
- προγράμματα. Για πληροφορίες σχετικές με τις ρυθμίσεις τερματικών,
- την αρχικοποίηση και τα κλειδώματα συσκευών, και τη ρύθμιση
- παραμέτρων στα τερματικά, δείτε αντίστοιχα τις σελίδες manual
- &man.termios.4;, &man.sio.4;, και &man.stty.1;.</para>
- </sect2>
-
- <sect2 xml:id="serial-hw-config">
- <title>Ρυθμίσεις Σειριακών Θυρών</title>
-
- <indexterm><primary><filename>ttyu</filename></primary></indexterm>
- <indexterm><primary><filename>cuau</filename></primary></indexterm>
-
- <para>Η συσκευή
- <filename>ttyuN</filename> (ή
- <filename>cuauN</filename>) είναι η
- κανονική συσκευή που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας.
- Όταν μια διαδικασία ανοίγει μια συσκευή, χρησιμοποιούνται κάποιες
- προεπιλεγμένες ρυθμίσεις 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> για τη συσκευή
- <filename>ttyu5</filename>, γράψτε:</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>. Για παράδειγμα, για να κλειδώσετε την
- ταχύτητα της συσκευής <filename>ttyu5</filename> στα
- 57600&nbsp;bps, γράψτε:</para>
-
- <screen>&prompt.root; <userinput>stty -f /dev/ttyu5.lock 57600</userinput></screen>
-
- <para>Τώρα, μια εφαρμογή που ανοίγει τη θύρα
- <filename>ttyu5</filename> και επιχειρεί να αλλάξει την ταχύτητα
- της θύρας, θα αναγκαστεί να παραμείνει στα 57600&nbsp;bps.</para>
-
- <para>Φυσικά, θα πρέπει να ρυθμίσετε τις συσκευές αρχικοποίησης και
- κλειδώματος, ώστε να είναι εγγράψιμες μόνο από τον λογαριασμό του
- <systemitem class="username">root</systemitem>.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="term">
- <info><title>Τερματικά</title>
- <authorgroup>
- <author><personname><firstname>Sean</firstname><surname>Kelly</surname></personname><contrib>Συνεισφορά του </contrib></author>
- <!-- 28 July 1996 -->
- </authorgroup>
- </info>
-
-
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
- θυρών μετονομάστηκαν από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</filename> και από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</filename>.
- Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
- τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
- </warning>
-
- <indexterm><primary>terminals</primary></indexterm>
-
- <para>Τα τερματικά παρέχουν μια βολική και χαμηλού κόστους μέθοδο
- πρόσβασης στο &os; σύστημα σας, όταν δεν βρίσκεστε μπροστά στην κονσόλα
- ή σε κάποιο συνδεμένο δίκτυο. Η ενότητα αυτή περιγράφει πως να
- χρησιμοποιήσετε τερματικά στο &os;.</para>
-
- <sect2 xml: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 xml: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 xml: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 serial-port-device</userinput></screen>
-
- <para>Όπου το <quote>serial-port-device</quote> είναι το όνομα του
- αρχείου συσκευής που αντιπροσωπεύει μια σειριακή θύρα στο σύστημα
- σας. Αυτά τα αρχεία συσκευών καλούνται
- <filename>/dev/cuauN</filename>.</para>
-
- <para>Το <quote>N</quote> στο όνομα της συσκευής, αντιπροσωπεύει τον
- αριθμό της σειριακής θύρας.</para>
-
- <note>
- <para>Σημειώστε ότι η αρίθμηση των συσκευών στο &os; ξεκινά από το
- μηδέν, και όχι από το ένα (όπως συμβαίνει για παράδειγμα στα
- συστήματα που σχετίζονται με το &ms-dos;). Αυτό πρακτικά σημαίνει
- ότι η θύρα που στο &ms-dos; καλείται
- <filename>COM1</filename> θα είναι συνήθως η
- <filename>/dev/cuau0</filename> στο &os;.</para>
- </note>
-
- <note>
- <para>Κάποιοι χρήστες προτιμούν να χρησιμοποιούν άλλα προγράμματα
- που διατίθενται μέσω της Συλλογής των Ports. Τα Ports
- περιλαμβάνουν αρκετά βοηθητικά προγράμματα με λειτουργίες
- παρόμοιες με το &man.cu.1; και το &man.tip.1;, για παράδειγμα το
- <package>comms/minicom</package>.</para>
- </note>
- </sect3>
-
- <sect3 xml:id="term-x">
- <title>Τερματικά X</title>
-
- <para>Τα τερματικά X είναι τα πιο εξελιγμένα είδη τερματικών που
- υπάρχουν. Αντί να συνδέονται σε σειριακή θύρα, συνήθως συνδέονται
- μέσω δικτύου, π.χ. Ethernet. Αντί να περιορίζονται μόνο σε
- εφαρμογές κειμένου, μπορούν να απεικονίσουν οποιαδήποτε εφαρμογή
- των X.</para>
-
- <para>Αναφέραμε τα τερματικά X μόνο για λόγους πληρότητας αυτής της
- ενότητας. Στο κεφάλαιο αυτό ωστόσο, <emphasis>δεν</emphasis>
- καλύπτεται η εγκατάσταση, ρύθμιση, και χρήση των
- τερματικών X.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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; σύστημα σας, θα πρέπει
- να εκτελέσετε τα ακόλουθα βήματα ως <systemitem class="username">root</systemitem>:</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 xml:id="term-etcttys">
- <title>Προσθέτοντας μια Καταχώριση στο
- <filename>/etc/ttys</filename></title>
-
- <para>Το αρχείο <filename>/etc/ttys</filename> περιέχει μια λίστα όλων
- των θυρών του &os; συστήματος σας στις οποίες θέλετε να επιτρέπεται
- η είσοδος στο σύστημα. Για παράδειγμα, υπάρχει μια καταχώριση σε
- αυτό το αρχείο για την πρώτη εικονική κονσόλα
- <filename>ttyv0</filename>. Μέσω αυτής της καταχώρισης,
- μπορείτε να εισέλθετε στο σύστημα από την κονσόλα. Το αρχείο αυτό
- περιέχει επίσης καταχωρίσεις για άλλες εικονικές κονσόλες, σειριακές
- θύρες και ψευδό-τερματικά. Για κάποιο τερματικό που είναι συνδεμένο
- απευθείας σε μια σειριακή θύρα, γράψτε απλώς την καταχώριση της
- σειριακής συσκευής όπως φαίνεται στον κατάλογο
- <filename>/dev</filename>, χωρίς να γράψετε και τον κατάλογο
- <filename>/dev</filename> (για παράδειγμα, η συσκευή
- <filename>/dev/ttyv0</filename> θα καταχωρισθεί ως
- <filename>ttyv0</filename>).</para>
-
- <para>Η προεπιλεγμένη εγκατάσταση του &os; περιέχει ένα αρχείο
- <filename>/etc/ttys</filename> το οποίο υποστηρίζει τις πρώτες
- τέσσερις σειριακές θύρες: <filename>ttyu0</filename> ως και
- <filename>ttyu3</filename>. Αν συνδέσετε τερματικό σε κάποια
- από αυτές τις θύρες, δεν χρειάζεται να προσθέσετε άλλη
- καταχώριση.</para>
-
- <example xml: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 xml:id="co-ttys-line1col1"/> "/usr/libexec/getty std.38400"<co xml:id="co-ttys-line1col2"/> wy50<co xml:id="co-ttys-line1col3"/> on<co xml:id="co-ttys-line1col4"/> insecure<co xml: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>Το τελευταίο πεδίο χρησιμοποιείται για να καθορίσει αν
- η θύρα είναι ασφαλής. Αν χαρακτηρίσετε μια θύρα ως ασφαλή,
- σημαίνει ότι την εμπιστεύεστε αρκετά ώστε να επιτρέπετε την
- είσοδο του <systemitem class="username">root</systemitem> μέσω αυτής
- (ή οποιουδήποτε λογαριασμού με ID 0). Δεν επιτρέπεται η
- είσοδος του <systemitem class="username">root</systemitem> σε μια θύρα που έχει
- χαρακτηριστεί μη-ασφαλής. Σε μη-ασφαλείς θύρες, οι χρήστες
- πρέπει να εισέρχονται χρησιμοποιώντας ένα συνηθισμένο
- λογαριασμό χρήστη, και να χρησιμοποιούν την εντολή &man.su.1;
- ή άλλο αντίστοιχο μηχανισμό για να αποκτήσουν προνόμια
- υπερχρήστη.</para>
-
- <para>Σας συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε τη ρύθμιση
- <quote>insecure</quote>, ακόμα και για τερματικά που
- βρίσκονται σε κλειδωμένα δωμάτια. Είναι αρκετά εύκολο να
- εισέλθετε ως κανονικός χρήστης και να χρησιμοποιήσετε την
- εντολή <command>su</command> αν χρειάζεστε προνόμια
- υπερχρήστη.</para>
- </callout>
- </calloutlist>
- </example>
- </sect3>
-
- <sect3 xml: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 xml: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> εκτελείτε στη δεύτερη σειριακή θύρα
- <filename>ttyu1</filename> και χρησιμοποιεί την καταχώριση
- <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 xml:id="dialup">
- <info><title>Υπηρεσία Εισόδου μέσω Επιλογικής Σύνδεσης (dial-in)</title>
- <authorgroup>
- <author><personname><firstname>Guy</firstname><surname>Helmer</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Sean</firstname><surname>Kelly</surname></personname><contrib>Προσθήκες από τον </contrib></author>
- </authorgroup>
- </info>
-
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
- θυρών μετονομάστηκαν από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</filename> και από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</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" xml: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 xml: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; το
- <filename>ttyu0</filename> αντιστοιχεί στο αρχείο
- <filename>/dev/ttyu0</filename> το οποίο και θα παρακολουθεί η
- <command>getty</command>. Το δεύτερο πεδίο,
- <literal>"/usr/libexec/getty
- xxx"</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.speed</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>
- στις συσκευές αρχικοποίησης της δεύτερης σειριακής θύρας
- (<filename>COM2</filename>) για επιλογικές κλήσεις εισόδου και
- εξόδου, θα πρέπει να προσθέσετε τις παρακάτω γραμμές στο αρχείο
- <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> να
- περιμένουν να ανοίξουν την επιθυμητή θύρα
- <filename>ttyuN</filename>, ελέγξτε
- ξανά τις καταχωρίσεις σας στο <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/ttyuN</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 xml:id="dialout">
- <title>Υπηρεσία Επιλογικής Σύνδεσης</title>
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
- θυρών μετονομάστηκαν από
- <filename>/dev/cuadN</filename> σε
- <filename>/dev/cuauN</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 xml: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 xml:id="direct-at">
- <title>Πως Υποτίθεται Ότι θα Στείλω Αυτές τις <literal>ΑΤ</literal>
- Εντολές;</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> ως
- <systemitem class="username">root</systemitem>, δίνοντας την ακόλουθη εντολή:</para>
-
- <screen>&prompt.root; <userinput>cu -lline -sspeed</userinput></screen>
-
- <para>Το <replaceable>line</replaceable> είναι η σειριακή θύρα
- (π.χ. <filename>/dev/cuau0</filename>) και το
- <replaceable>speed</replaceable> είναι η ταχύτητα
- (π.χ. <literal>57600</literal>). Όταν τελειώσετε με τις εντολές ΑΤ,
- γράψτε <command>~.</command> για να τερματίσετε τη σύνδεση.</para>
- </sect2>
-
- <sect2 xml: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 xml: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 xml: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 xml:id="terminal-server">
- <title>Έχω Πρόσβαση σε Ένα Αριθμό Υπολογιστών Μέσω Ενός Εξυπηρετητή
- Τερματικών</title>
-
- <para>Αντί να περιμένετε μέχρι να συνδεθείτε και να πληκτρολογείτε
- <command>CONNECT host</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> για να
- συνδέεστε στους υπολογιστές <systemitem>pain</systemitem> ή
- <systemitem>muffin</systemitem>, και <command>tip deep13</command> για να
- συνδέεστε στον εξυπηρετητή τερματικών.</para>
- </sect2>
-
- <sect2 xml: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 xml: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=single-char</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 xml: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 xml: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 xml:id="zmodem-tip">
- <title>Πως Μπορώ να Εκτελέσω το <application>zmodem</application> με την
- <command>tip</command>;</title>
-
- <para>Για να λάβετε αρχεία, ξεκινήστε το πρόγραμμα αποστολής στον
- απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
- <command>~C rz</command> για να ξεκινήσετε την τοπική λήψη.</para>
-
- <para>Για να στείλετε αρχεία, ξεκινήστε το πρόγραμμα λήψης στον
- απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
- <command>~C sz files</command>
- για να στείλετε τα αρχεία στο απομακρυσμένο σύστημα.</para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="serialconsole-setup">
- <info><title>Ρύθμιση της Σειριακής Κονσόλας</title>
- <authorgroup>
- <author><personname><firstname>Kazutaka</firstname><surname>YOKOTA</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- <authorgroup>
- <author><personname><firstname>Bill</firstname><surname>Paul</surname></personname><contrib>Βασισμένο σε ένα κείμενο του </contrib></author>
- </authorgroup>
- </info>
-
-
- <warning>
- <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
- θυρών μετονομάστηκαν από
- <filename>/dev/ttydN</filename> σε
- <filename>/dev/ttyuN</filename>.
- Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
- τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
- </warning>
-
- <indexterm><primary>serial console</primary></indexterm>
-
- <sect2 xml: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 xml:id="serialconsole-howto-fast">
- <title>Ρύθμιση Σειριακής Κονσόλας (Σύντομη Έκδοση)</title>
-
- <para>Η ενότητα αυτή υποθέτει ότι σκοπεύετε να χρησιμοποιήσετε τις
- προεπιλεγμένες ρυθμίσεις, και θέλετε απλώς μια γρήγορη επισκόπηση της
- διαδικασίας ρύθμισης της σειριακής κονσόλας.</para>
-
- <procedure>
- <step>
- <para>Συνδέστε το σειριακό καλώδιο στην
- <filename>COM1</filename> και στο τερματικό.</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> για την
- καταχώριση <filename>ttyu0</filename>. Διαφορετικά, δεν θα
- χρειάζεται κωδικός πρόσβασης για τη σύνδεση μέσω της σειριακής
- κονσόλας, το οποίο αποτελεί πιθανό κενό ασφαλείας.</para>
- </step>
-
- <step>
- <para>Επανεκκινήστε το σύστημα για να δείτε αν ίσχυσαν οι
- αλλαγές.</para>
- </step>
- </procedure>
-
- <para>Αν χρειάζεστε διαφορετικές ρυθμίσεις, θα βρείτε λεπτομέρειες για
- την ρύθμιση στο <xref linkend="serialconsole-howto"/>.</para>
- </sect2>
-
- <sect2 xml: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>Συνδέστε ένα κουτό τερματικό στην
- <filename>COM1</filename>
- (<filename>sio0</filename>).</para>
-
- <para>Αν δεν έχετε κουτό τερματικό, μπορείτε να συνδέσετε ένα παλιό
- PC/XT με ένα πρόγραμμα για modem, ή να χρησιμοποιήσετε τη σειριακή
- θύρα σε ένα άλλο μηχάνημα &unix;. Αν δεν έχετε
- σειριακή θύρα <filename>COM1</filename>
- (<filename>sio0</filename>), αγοράστε μια. Τη δεδομένη στιγμή
- δεν υπάρχει τρόπος να επιλέξετε άλλη θύρα εκτός από την
- <filename>COM1</filename>, χωρίς να επαναμεταγλωττίσετε τα
- boot blocks. Αν χρησιμοποιείτε ήδη την
- <filename>COM1</filename> για κάποια άλλη συσκευή, θα πρέπει
- να την αφαιρέσετε προσωρινά, και να εγκαταστήσετε νέο boot
- block και πυρήνα, μόλις συνδεθείτε στο &os;. (Υποθέτουμε ότι η
- <filename>COM1</filename> θα είναι έτσι και αλλιώς διαθέσιμη
- σε ένα εξυπηρετητή αρχείων/υπολογισμών/τερματικών. Αν
- πραγματικά χρειάζεστε την <filename>COM1</filename> για κάτι
- άλλο (και δεν μπορείτε αυτό το κάτι άλλο να το μετακινήσετε στην
- <filename>COM2</filename> (<filename>sio1</filename>)),
- μάλλον δεν θα έπρεπε να ασχοληθείτε καθόλου με όλο αυτό το
- θέμα).</para>
- </step>
-
- <step>
- <para>Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας έχει τις
- κατάλληλες επιλογές (flags) για την <filename>COM1</filename>
- (<filename>sio0</filename>).</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). Δείτε
- <link xlink:href="&url.books.developers-handbook;/index.html">Το
- Βιβλίο του Προγραμματιστή</link> για περισσότερες
- λεπτομέρειες σχετικά με την απομακρυσμένη
- εκσφαλμάτωση.</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 xml:id="serialconsole-summary">
- <title>Περίληψη</title>
-
- <para>Εδώ θα βρείτε μια περίληψη των διάφορων επιλογών που
- παρουσιάστηκαν σε αυτή την ενότητα, και την κονσόλα που επιλέχθηκε
- τελικά.</para>
-
- <sect3>
- <title>1η Περίπτωση: Έχετε Θέσει το Flag 0x10 για τη Θύρα
- <filename>sio0</filename></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 για την Θύρα
- <filename>sio0</filename></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 xml:id="serialconsole-tips">
- <title>Συμβουλές για την Σειριακή Κονσόλα</title>
-
- <sect3>
- <title>Ρύθμιση Μεγαλύτερης Ταχύτητας για τη Σειριακή Θύρα</title>
-
- <para>Οι προεπιλεγμένες ρυθμίσεις της σειριακής θύρας είναι: 9600
- baud, 8 bits, χωρίς ισοτιμία (parity), 1 stop bit. Αν θέλετε να
- αλλάξετε την προεπιλεγμένη ταχύτητα της κονσόλας, έχετε τις παρακάτω
- επιλογές:</para>
-
- <itemizedlist>
- <listitem>
- <para>Επαναμεταγλωττίστε τα boot blocks θέτοντας τη μεταβλητή
- <varname>BOOT_COMCONSOLE_SPEED</varname> για να ορίσετε την νέα
- ταχύτητα κονσόλας. Δείτε το <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 xml:id="serialconsole-com2">
- <title>Χρησιμοποιώντας Σειριακή Θύρα Εκτός της
- <filename>sio0</filename> για την Κονσόλα.</title>
-
- <para>Θα πρέπει να επαναμεταγλωττίσετε κάποια προγράμματα για να
- χρησιμοποιήσετε ως κονσόλα μια σειριακή θύρα εκτός της
- <filename>sio0</filename>. Αν για οποιοδήποτε λόγο
- θέλετε να χρησιμοποιήσετε άλλη σειριακή θύρα, θα πρέπει να
- επαναμεταγλωττίσετε τα 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). Μπορείτε να χρησιμοποιήσετε μόνο τις
- θύρες <filename>sio0</filename> ως
- <filename>sio3</filename> (<filename>COM1</filename>
- ως <filename>COM4</filename>). Κάρτες πολλαπλών θυρών, δεν
- πρόκειται να λειτουργήσουν. Δεν χρειάζεται να ρυθμίσετε την
- τιμή του interrupt.</para>
- </step>
-
- <step>
- <para>Δημιουργήστε ένα αρχείο ρύθμισης προσαρμοσμένου πυρήνα, και
- προσθέστε τα κατάλληλα flags για τη σειριακή θύρα που επιθυμείτε
- να χρησιμοποιήσετε. Για παράδειγμα, αν θέλετε η
- <filename>sio1</filename> (<filename>COM2</filename>)
- να γίνει η κονσόλα:</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 xml: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>Οι καταχωρίσεις από <filename>ttyu0</filename> ως
- <filename>ttyu3</filename> αντιστοιχούν στις
- <filename>COM1</filename> ως <filename>COM4</filename>.
- Αλλάξτε το <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 xml: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>Χρήση Σειριακής Θύρας Εκτός της <filename>sio0</filename>
- για την Κονσόλα</title>
-
- <para>Θα πρέπει να επαναμεταγλωττίσετε το φορτωτή εκκίνησης ώστε να
- χρησιμοποιήσει μια σειριακή θύρα διαφορετική από την
- <filename>sio0</filename> για τη σειριακή κονσόλα. Ακολουθήστε
- τη διαδικασία που περιγράφεται στο <xref linkend="serialconsole-com2"/>.</para>
- </sect3>
- </sect2>
-
- <sect2 xml: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>
diff --git a/el_GR.ISO8859-7/books/handbook/txtfiles.ent b/el_GR.ISO8859-7/books/handbook/txtfiles.ent
deleted file mode 100644
index 62eb8c4bbf..0000000000
--- a/el_GR.ISO8859-7/books/handbook/txtfiles.ent
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του 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">
diff --git a/el_GR.ISO8859-7/books/handbook/users/chapter.xml b/el_GR.ISO8859-7/books/handbook/users/chapter.xml
deleted file mode 100644
index 71cb3edafe..0000000000
--- a/el_GR.ISO8859-7/books/handbook/users/chapter.xml
+++ /dev/null
@@ -1,1085 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Χρήστες και Βασική Διαχείριση Λογαριασμών
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/users/chapter.xml
- %SRCID% 39362
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="users">
- <info><title>Χρήστες και Βασική Διαχείριση Λογαριασμών</title>
- <authorgroup>
- <author><personname><firstname>Neil</firstname><surname>Blakey-Milner</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 xml: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 xml: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/username</filename>
- ή στο <filename>/usr/home/username</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>. Ο λογαριασμός
- υπερχρήστη, συνήθως ονομάζεται <systemitem class="username">root</systemitem>,
- χρησιμοποιείται για τη διαχείριση του συστήματος χωρίς περιορισμούς
- στα προνόμια. Οι χρήστες συστήματος τρέχουν υπηρεσίες. Τέλος, οι
- λογαριασμοί χρηστών χρησιμοποιούνται από πραγματικούς ανθρώπους, που
- συνδέονται, διαβάζουν mail, και ούτω καθεξής.</para>
- </sect1>
-
- <sect1 xml:id="users-superuser">
- <title>Ο Λογαριασμός Υπερχρήστη</title>
-
- <indexterm>
- <primary>accounts</primary>
- <secondary>superuser (root)</secondary>
- </indexterm>
- <para>Ο λογαριασμός υπερχρήστη, συνήθως καλείται
- <systemitem class="username">root</systemitem>, είναι προρυθμισμένος για να διευκολύνεται
- η διαχείριση του συστήματος, και δεν θα πρέπει να χρησιμοποιείται για
- καθημερινές εργασίες όπως αποστολή και λήψη mail, γενική εξερεύνηση του
- συστήματος, ή προγραμματισμό.</para>
-
- <para>Αυτό διότι ο υπερχρήστης, σε αντίθεση με τους κανονικούς
- λογαριασμούς χρηστών, μπορεί να λειτουργεί χωρίς όρια, και
- κακομεταχείριση του λογαριασμού αυτού μπορεί να έχει ως συνέπεια
- θεαματικές καταστροφές. Οι λογαριασμοί χρηστών δεν μπορούν να
- καταστρέψουν το σύστημα από λάθος, έτσι είναι γενικά καλύτερα να
- χρησιμοποιείτε κανονικούς λογαριασμούς χρηστών όποτε είναι δυνατόν,
- εκτός εάν ειδικότερα χρειάζεστε τα επιπλέον προνόμια.</para>
-
- <para>Θα πρέπει πάντα να ελέγχετε δύο και τρεις φορές τις εντολές που
- δίνετε σαν υπερχρήστης, αφού ένα επιπλέον κενό ή ένας χαρακτήρας που
- λείπει, μπορεί να σημαίνει ανεπανόρθωτη απώλεια δεδομένων.</para>
-
- <para>Έτσι, το πρώτο πράγμα που θα πρέπει να κάνετε αφού διαβάσετε αυτό
- το κεφάλαιο, είναι να δημιουργήσετε έναν λογαριασμό χρήστη, χωρίς
- προνόμια, για τον εαυτό σας για γενική χρήση αν δεν το έχετε κάνει ήδη.
- Αυτό ισχύει εξίσου εάν τρέχετε ένα πολυ-χρηστικό ή μονο-χρηστικό
- μηχάνημα. Αργότερα σε αυτό το κεφάλαιο, θα συζητήσουμε πως να
- δημιουργείτε πρόσθετους λογαριασμούς, και πως να αλλάζετε μεταξύ
- του κανονικού χρήστη και του υπερχρήστη.</para>
- </sect1>
-
- <sect1 xml:id="users-system">
- <title>Λογαριασμοί Συστήματος</title>
-
- <indexterm>
- <primary>accounts</primary>
- <secondary>system</secondary>
- </indexterm>
- <para>Οι χρήστες συστήματος είναι αυτοί που χρησιμοποιούνται για να
- τρέχουν υπηρεσίες όπως το DNS, mail, web servers, και ούτω καθεξής.
- Ο λόγος για αυτό είναι η ασφάλεια: αν όλες οι υπηρεσίες έτρεχαν
- με δικαιώματα υπερχρήστη, θα λειτουργούσαν χωρίς περιορισμούς.</para>
-
- <indexterm>
- <primary>accounts</primary>
- <secondary><systemitem class="username">daemon</systemitem></secondary>
- </indexterm>
- <indexterm>
- <primary>accounts</primary>
- <secondary><systemitem class="username">operator</systemitem></secondary>
- </indexterm>
- <para>Παραδείγματα από χρήστες συστήματος είναι οι
- <systemitem class="username">daemon</systemitem>, <systemitem class="username">operator</systemitem>,
- <systemitem class="username">bind</systemitem> (για το Domain Name Service),
- <systemitem class="username">news</systemitem>, και <systemitem class="username">www</systemitem>.</para>
-
- <indexterm>
- <primary>accounts</primary>
- <secondary><systemitem class="username">nobody</systemitem></secondary>
- </indexterm>
- <para>Ο <systemitem class="username">nobody</systemitem> είναι ο γενικός, χωρίς προνόμια,
- χρήστης συστήματος. Ωστόσο, είναι σημαντικό να έχετε κατά νου ότι όσο
- περισσότερες υπηρεσίες χρησιμοποιούν τον <systemitem class="username">nobody</systemitem>,
- τόσο περισσότερα αρχεία και διεργασίες θα συσχετιστούν με αυτόν, και
- έτσι τόσο περισσότερο προνομιούχος γίνεται αυτός ο χρήστης.</para>
- </sect1>
-
- <sect1 xml:id="users-user">
- <title>Λογαριασμοί Χρηστών</title>
-
- <indexterm>
- <primary>accounts</primary>
- <secondary>user</secondary>
- </indexterm>
- <para>Οι λογαριασμοί χρηστών είναι το πρωταρχικό μέσο πρόσβασης για
- πραγματικούς ανθρώπους στο σύστημα, και μέσω αυτών απομονώνεται ο κάθε
- χρήστης και το περιβάλλον εργασίας του, αποτρέποντας έτσι πιθανή
- καταστροφή του συστήματος ή άλλων χρηστών, και επιτρέποντας σε κάθε
- ένα να προσαρμόζει το δικό του περιβάλλον χωρίς να επηρεάζει τους
- άλλους.</para>
-
- <para>Κάθε άτομο που έχει πρόσβαση στο σύστημά σας θα πρέπει να έχει ένα
- μοναδικό λογαριασμό χρήστη. Αυτό σας επιτρέπει να βρείτε ποιος κάνει
- τι, αποτρέπει ανθρώπους από το να πειράζουν τις ρυθμίσεις ο ένας του
- άλλου, ή να διαβάσει ο ένας τα mail του άλλου, και ούτω καθεξής.</para>
-
- <para>Κάθε χρήστης μπορεί να στήσει το δικό του περιβάλλον ώστε να
- προσαρμόσει την χρήση του συστήματος, χρησιμοποιώντας εναλλακτικά
- κελύφη, συντάκτες, συνδυασμούς πλήκτρων και γλώσσας.</para>
- </sect1>
-
- <sect1 xml: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 xml: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>/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 xml: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 xml: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 xml: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 xml: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 xml: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>name=value</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 xml: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; εντολή για να
- προσθέσετε και να επεξεργαστείτε ομάδες. Για παράδειγμα, για να
- προσθέσετε μια ομάδα που λέγεται <systemitem class="groupname">teamtwo</systemitem> και
- μετά να επιβεβαιώσετε ότι υπάρχει, μπορείτε να χρησιμοποιήσετε:</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 της
- ομάδας <systemitem class="groupname">teamtwo</systemitem>. Αυτή την στιγμή, η
- <systemitem class="groupname">teamtwo</systemitem> δεν έχει μέλη, και γι'αυτό είναι μάλλον
- άχρηστη. Ας το αλλάξουμε αυτό προσκαλώντας τον <systemitem class="username">jru</systemitem>
- στην ομάδα <systemitem class="groupname">teamtwo</systemitem>.</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>Όπως μπορείτε να δείτε, ο <systemitem class="username">jru</systemitem> είναι μέλος των
- ομάδων <systemitem class="groupname">jru</systemitem> και
- <systemitem class="groupname">teamtwo</systemitem>.</para>
-
- <para>Για περισσότερες πληροφορίες σχετικά με την &man.pw.8;, δείτε την
- σελίδα manual, και για περισσότερες πληροφορίες σχετικά με την
- μορφοποίηση του <filename>/etc/group</filename>, συμβουλευτείτε την
- σελίδα manual &man.group.5;.</para>
- </sect1>
-</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/vinum/chapter.xml b/el_GR.ISO8859-7/books/handbook/vinum/chapter.xml
deleted file mode 100644
index ad82e58097..0000000000
--- a/el_GR.ISO8859-7/books/handbook/vinum/chapter.xml
+++ /dev/null
@@ -1,1343 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του 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.xml
- %SRCID% 38826
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="vinum-vinum">
- <info><title>Ο Διαχειριστής Τόμων Vinum</title>
- <authorgroup>
- <author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><contrib>Αρχική συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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>/dev/gvinum</filename> αντί για
- <filename>/dev/vinum</filename>. Από το
- &os;&nbsp;6 και μετά, η παλιά υλοποίηση του Vinum δεν περιλαμβάνεται
- πλέον στο βασικό σύστημα.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="vinum-intro">
- <title>Οι Δίσκοι Είναι Πολύ Μικροί</title>
-
- <indexterm><primary>Vinum</primary></indexterm>
- <indexterm><primary>RAID</primary>
- <secondary>software</secondary></indexterm>
-
- <para>Οι δίσκοι γίνονται ολοένα και μεγαλύτεροι, αλλά με τον ίδιο ρυθμό
- αυξάνονται επίσης και οι απαιτήσεις μας σε αποθηκευτικό χώρο. Πολλές
- φορές θα βρεθείτε σε θέση να χρειάζεστε ένα σύστημα αρχείων μεγαλύτερο
- από τους δίσκους που έχετε διαθέσιμους. Σίγουρα το πρόβλημα αυτό δεν
- είναι τόσο έντονο όσο πριν δέκα χρόνια, αλλά εξακολουθεί να υπάρχει.
- Μερικά συστήματα επιλύουν αυτό το πρόβλημα, δημιουργώντας μια εικονική
- συσκευή που αποθηκεύει τα δεδομένα σε ένα αριθμό διακριτών
- δίσκων.</para>
- </sect1>
-
- <sect1 xml:id="vinum-access-bottlenecks">
- <title>Καθυστερήσεις Πρόσβασης</title>
-
- <para>Στα μοντέρνα συστήματα, υπάρχει συχνά ανάγκη πρόσβασης δεδομένων
- από πολλές διεργασίες ταυτόχρονα. Για παράδειγμα, μεγάλοι εξυπηρετητές
- FTP ή HTTP μπορεί να έχουν ανά πάσα στιγμή χιλιάδες ταυτόχρονες
- εξωτερικές συνδέσεις και να διαθέτουν πολλαπλές διεπαφές 100&nbsp;Mbit/s
- οι οποίες ξεπερνάνε κατά πολύ τις δυνατότητες μεταφοράς δεδομένων των
- περισσότερων σκληρών δίσκων.</para>
-
- <para>Τα τρέχοντα μοντέλα σκληρών δίσκων μπορούν να μεταφέρουν δεδομένα
- σειριακά με ταχύτητα μέχρι και 70&nbsp;MB/s, αλλά η τιμή αυτή έχει μικρή
- σημασία σε ένα περιβάλλον όπου πολλές ανεξάρτητες διεργασίες χρειάζονται
- πρόσβαση στον ίδιο δίσκο. Σε τέτοιες περιπτώσεις, κάθε διεργασία μπορεί
- να επιτύχει μόνο ένα μικρό ποσοστό της μέγιστης αυτής απόδοσης. Είναι
- πιο ενδιαφέρον να δούμε το πρόβλημα από την πλευρά του υποσυστήματος
- δίσκων: ο σημαντικός παράγοντας είναι ο φόρτος στον οποίο υποβάλλεται
- το υποσύστημα κατά τη διάρκεια μιας μεταφοράς. Με άλλα λόγια, ο χρόνος
- που παραμένουν απασχολημένοι οι δίσκοι εξαιτίας της μεταφοράς.</para>
-
- <para>Σε κάθε μεταφορά δεδομένων, ο δίσκος θα πρέπει πρώτα να τοποθετήσει
- τις κεφαλές στο σωστό σημείο, να περιμένει να περάσει ο πρώτος τομέας
- κάτω από την κεφαλή ανάγνωσης, και έπειτα να εκτελέσει τη μεταφορά.
- Οι ενέργειες αυτές μπορούν να θεωρηθούν ατομικές: δεν έχει νόημα να
- προσπαθήσουμε να τις διακόψουμε.</para>
-
- <para><anchor xml: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 xml:id="vinum-concat">
- <title>Οργάνωση Συνένωσης</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-concat"/></imageobject></mediaobject>
- </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 xml:id="vinum-striped">
- <title>Striped Organization</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-striped"/></imageobject></mediaobject>
- </figure>
- </para>
- </sect1>
-
- <sect1 xml: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 xml:id="vinum-raid5-org">
- <title>RAID-5 Organization</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-raid5-org"/></imageobject></mediaobject>
- </figure>
- </para>
-
- <para>Σε σύγκριση με το mirror, το <acronym>RAID-5</acronym> έχει το
- πλεονέκτημα να απαιτεί σημαντικά λιγότερο χώρο αποθήκευσης. Η ταχύτητα
- ανάγνωσης είναι ίδια με το stripe, αλλά η εγγραφή είναι σημαντικά πιο
- αργή, περίπου το 25% της απόδοσης κατά την ανάγνωση. Αν ένας δίσκος
- χαλάσει, η συστοιχία εξακολουθεί να λειτουργεί σε ελαττωμένη (degraded)
- κατάσταση: η ανάγνωση από τους δίσκους που λειτουργούν κανονικά
- συνεχίζεται απροβλημάτιστα, αλλά η ανάγνωση δεδομένων που βρίσκονταν
- στον προβληματικό δίσκο πρέπει να επαναϋπολογιστεί με βάση τα
- αντίστοιχα μπλοκ ισοτιμίας που βρίσκονται σε όλους τους άλλους
- δίσκους.</para>
- </sect1>
-
- <sect1 xml: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 xml: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 xml: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 xml:id="vinum-simple-vol">
- <title>Ένας Απλός Τόμος Vinum</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-simple-vol"/></imageobject></mediaobject>
- </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 xml:id="vinum-mirrored-vol">
- <title>Ένας Mirrored Τόμος Vinum </title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-mirrored-vol"/></imageobject></mediaobject>
- </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 xml:id="vinum-striped-vol">
- <title>Ένας Striped Τόμος Vinum</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-striped-vol"/></imageobject></mediaobject>
- </figure>
- </para>
-
- <para>Αυτός ο τόμος αναπαρίσταται γραφικά στο
- <xref linkend="vinum-striped-vol"/>. Η απόχρωση της λωρίδας
- αντιπροσωπεύει τη θέση της μέσα στην περιοχή διευθύνσεων του plex:
- οι ανοιχτόχρωμες λωρίδες είναι οι πρώτες, οι σκουρόχρωμες είναι οι
- τελευταίες.</para>
- </sect2>
-
- <sect2>
- <title>Αξιοπιστία και Απόδοση</title>
-
- <para><anchor xml: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 xml:id="vinum-raid10-vol">
- <title>Ένας Mirrored και Striped Τόμος του Vinum</title>
- <mediaobject><imageobject><imagedata fileref="vinum/vinum-raid10-vol"/></imageobject></mediaobject>
- </figure>
- </para>
- </sect2>
- </sect1>
-
- <sect1 xml:id="vinum-object-naming">
- <title>Ονομασία Αντικειμένων</title>
-
- <para>Όπως περιγράψαμε παραπάνω, το Vinum αποδίδει προεπιλεγμένα ονόματα
- σε plex και υποδίσκους, αν και υπάρχει η δυνατότητα να τα
- παρακάμψετε. Αυτό ωστόσο δεν συνίσταται: η εμπειρία που έχουμε από
- το διαχειριστή τόμων VERITAS (ο οποίος επιτρέπει ελεύθερη απόδοση
- ονομάτων στα αντικείμενα) έχει δείξει ότι αυτού του είδους η ευελιξία
- δεν προσφέρει σημαντικά πλεονεκτήματα, και μπορεί να προκαλέσει
- σύγχυση.</para>
-
- <para>Τα ονόματα μπορεί να περιέχουν οποιοδήποτε μη-κενό χαρακτήρα, αλλά
- συνίσταται να περιοριστείτε στη χρήση γραμμάτων, αριθμών και της κάτω
- παύλας. Τα ονόματα των τόμων, των plex και των υποδίσκων μπορεί να
- είναι μέχρι 64 χαρακτήρες, ενώ τα ονόματα των δίσκων μπορεί να είναι
- μέχρι 32 χαρακτήρες.</para>
-
- <para>Τα αρχεία συσκευών του Vinum δημιουργούνται στον κατάλογο
- <filename>/dev/gvinum</filename>. Με τις ρυθμίσεις
- που φαίνονται παραπάνω, το Vinum θα δημιουργήσει τα παρακάτω αρχεία
- συσκευών:</para>
-
- <itemizedlist>
- <listitem>
- <para>Καταχωρίσεις συσκευών για κάθε τόμο. Αυτές είναι και οι κύριες
- συσκευές που χρησιμοποιεί το Vinum. Με τις ρυθμίσεις που δείξαμε
- παραπάνω, θα έχουμε τις συσκευές:
- <filename>/dev/gvinum/myvol</filename>,
- <filename>/dev/gvinum/mirror</filename>,
- <filename>/dev/gvinum/striped</filename>,
- <filename>/dev/gvinum/raid5</filename> και
- <filename>/dev/gvinum/raid10</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Όλοι οι τόμοι διαθέτουν απευθείας καταχωρίσεις στον κατάλογο
- <filename>/dev/gvinum/</filename>.</para>
- </listitem>
-
- <listitem>
- <para>Οι κατάλογοι
- <filename>/dev/gvinum/plex</filename> και
- <filename>/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>/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>/dev/ad0a</filename> ή
- <filename>/dev/da2h</filename>.
- Τα ονόματα αυτά αντιπροσωπεύουν την πρώτη κατάτμηση
- (<filename>a</filename>) στον πρώτο δίσκο IDE
- (<filename>ad</filename>) και την όγδοη κατάτμηση
- (<filename>h</filename>) στον τρίτο (2) SCSI δίσκο
- (<filename>da</filename>) αντίστοιχα. Σε αντίθεση, ένας τόμος
- του Vinum μπορεί να ονομάζεται <filename>/dev/gvinum/concat</filename>, το οποίο δεν
- έχει καμιά σχέση με όνομα κατάτμησης.</para>
-
- <para>Για να δημιουργήσετε ένα σύστημα αρχείων σε αυτό τον τόμο,
- χρησιμοποιήστε την &man.newfs.8;:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/gvinum/concat</userinput></screen>
- </sect2>
- </sect1>
-
- <sect1 xml: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 xml: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 xml: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 devname</userinput></screen>
-
- <para>για κάθε συσκευή που συμμετέχει στο ριζικό τόμο.
- Το <replaceable>devname</replaceable> θα πρέπει να είναι είτε το
- όνομα του δίσκου (για παράδειγμα <filename>da0</filename>)
- για δίσκους χωρίς slices (χωρίς δηλ. κατατμήσεις fdisk), ή το
- όνομα του slice (για παράδειγμα,
- <filename>ad0s1</filename>).</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/devnamea</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>/dev/da0h</filename>). Αυτό
- μεταφράζεται σε 265 block των 512 byte για την εντολή
- <command>bsdlabel</command>. Παρόμοια, το μέγεθος του ριζικού τόμου
- είναι 245760 μπλοκ των 512 byte. Το <filename>/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 xml: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>
diff --git a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.xml b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.xml
deleted file mode 100644
index 9bc033a436..0000000000
--- a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.xml
+++ /dev/null
@@ -1,1291 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Εικονικοποίηση
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/virtualization/chapter.xml
- %SRCID% 39283
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="virtualization">
- <info><title>Εικονικοποίηση</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Συνεισφορά από τον </contrib></author>
- </authorgroup>
-
- </info>
-
-
-
- <sect1 xml: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 xml:id="virtualization-guest">
- <title>Το &os; ως φιλοξενούμενο λειτουργικό</title>
-
- <sect2 xml: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 xml: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 xml: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 xml:id="virtualization-guest-virtualpc">
- <title>Το Virtual PC στα &windows;</title>
-
- <para>Το <application>Virtual PC</application> για &windows; είναι ένα
- προϊόν της &microsoft; που διατίθεται για δωρεάν κατέβασμα. Δείτε
- τις <link xlink:href="http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx">απαιτήσεις συστήματος</link>.
- Μετά την εγκατάσταση του <application>Virtual PC</application> στα
- &microsoft.windows;, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό
- μηχάνημα και να εγκαταστήσει το φιλοξενούμενο λειτουργικό που
- επιθυμεί.</para>
-
- <sect3 xml: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 xml: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 xml: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 xml: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 xml: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 xml: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>Αρχικά, εγκαταστήστε το πακέτο <package>emulators/virtualbox-ose-additions</package>
- στο φιλοξενούμενο &os; λειτουργικό.</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox-ose-additions &amp;&amp; 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.xml,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 xml:id="virtualization-host">
- <title> Το &os; ως Ξενιστής (Host)</title>
-
- <para>Για αρκετά χρόνια, κανένα από τα πακέτα εικονικοποίησης δεν
- υποστήριζε επίσημα το &os; ως ξενιστή. Κάποιοι χρήστες
- χρησιμοποιούσαν παλιές και κατά βάση εγκαταλελειμμένες εκδόσεις του
- <application>VMware</application> (όπως το <package>emulators/vmware3</package>), οι οποίες
- χρησιμοποιούσαν την συμβατότητα εκτέλεσης προγραμμάτων &linux;.
- Λίγο μετά την επίσημη κυκλοφορία του &os;&nbsp;7.2, έγινε διαθέσιμη
- στη Συλλογή των Ports η εφαρμογή
- <application>&virtualbox;</application> της &sun;. Η εφαρμογή αυτή
- εκτελείται ως εγγενές πρόγραμμα του &os;.</para>
-
- <para>Το <application>&virtualbox;</application> είναι ένα πλήρες πακέτο
- εικονικοποίησης το οποίο βρίσκεται σε διαρκή ανάπτυξη. Είναι διαθέσιμο
- για τα περισσότερα λειτουργικά συστήματα, συμπεριλαμβανομένων των
- &windows;, &macos;, &linux; και &os;. Έχει τη δυνατότητα να εκτελεί το
- ίδιο καλά τόσο λειτουργικά τύπου &windows; όσο και &unix;. Διανέμεται
- ως λογισμικό ανοικτού κώδικα αλλά περιέχει κάποια εξαρτήματα κλειστού
- κώδικα που διατίθενται ως χωριστό πακέτο επέκτασης. Μπορείτε να βρείτε
- περισσότερες πληροφορίες στη σελίδα <quote>Downloads</quote> στο
- wiki του <application>&virtualbox;</application>, <uri xlink:href="http://www.virtualbox.org/wiki/Downloads">http://www.virtualbox.org/wiki/Downloads</uri>. Τη δεδομένη
- στιγμή οι επεκτάσεις αυτές δεν διατίθενται για το &os;.</para>
-
- <sect2 xml:id="virtualization-virtualbox-install">
- <title>Εγκατάσταση του &virtualbox;</title>
-
- <para>Το <application>&virtualbox;</application> είναι διαθέσιμο ως &os;
- port στο <package>emulators/virtualbox-ose</package>.
- Καθώς το <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>/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>, δημιουργείται αυτόματα η
- ομάδα χρηστών <systemitem class="groupname">vboxusers</systemitem>. Όλοι οι χρήστες που
- χρειάζονται πρόσβαση στο <application>&virtualbox;</application>, θα
- πρέπει να ανήκουν σε αυτή την ομάδα. Μπορείτε να χρησιμοποιήσετε την
- εντολή <command>pw</command> για να προσθέσετε νέα μέλη στην
- ομάδα:</para>
-
- <screen>&prompt.root; <userinput>pw groupmod vboxusers -m yourusername</userinput></screen>
-
- <para>Τα προεπιλεγμένα δικαιώματα για τη συσκευή <filename>/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>, παρακαλούμε επισκεφθείτε την
- επίσημη δικτυακή τοποθεσία στο <uri xlink:href="http://www.virtualbox.org">http://www.virtualbox.org</uri>. Καθώς το &os; port είναι
- πολύ πρόσφατο, η εξέλιξη του είναι συνεχής. Για τις τελευταίες
- πληροφορίες καθώς και για οδηγίες αντιμετώπισης τυχόν προβλημάτων,
- παρακαλούμε δείτε τη σχετική σελίδα στο wiki του &os;, στην τοποθεσία
- <uri xlink:href="http://wiki.FreeBSD.org/VirtualBox">http://wiki.FreeBSD.org/VirtualBox</uri>.</para>
- </sect2>
-
- <sect2 xml: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 jerry</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 xml: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>/dev/xpt0</filename>,
- <filename>/dev/cdN</filename>
- και <filename>/dev/passN</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>
diff --git a/el_GR.ISO8859-7/books/handbook/x11/chapter.xml b/el_GR.ISO8859-7/books/handbook/x11/chapter.xml
deleted file mode 100644
index 1fac350a52..0000000000
--- a/el_GR.ISO8859-7/books/handbook/x11/chapter.xml
+++ /dev/null
@@ -1,1796 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-7"?>
-<!--
-
- Το Εγχειρίδιο του FreeBSD: Το Σύστημα X Window
-
- The FreeBSD Greek Documentation Project
-
- $FreeBSD$
-
- %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.xml
- %SRCID% 39176
-
--->
-<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="x11">
- <info><title>Το Σύστημα X Window</title>
- <authorgroup>
- <author><personname><firstname>Ken</firstname><surname>Tom</surname></personname><contrib>Ανανεώθηκε για τον X11 server του X.Org από τον </contrib></author>
- <author><personname><firstname>Marc</firstname><surname>Fonvieille</surname></personname></author>
- </authorgroup>
- </info>
-
-
-
- <sect1 xml: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, δείτε την δικτυακή
- τοποθεσία <link xlink:href="http://www.x.org/">&xorg;</link>.</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 xml: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 είναι υπεύθυνος για τη
- διαχείριση της οθόνης, της εισόδου από το πληκτρολόγιο, το ποντίκι,
- και άλλες συσκευές εισόδου ή εξόδου (για παράδειγμα, μια
- <quote>ταμπλέτα</quote> μπορεί να χρησιμοποιείται ως συσκευή εισόδου
- και ένας video-προβολέας ως εναλλακτική συσκευή εξόδου).
- Κάθε εφαρμογή 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 xml: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 <package>x11/xorg-minimal</package>.</para>
- </note>
-
- <para>Το υπόλοιπο του κεφαλαίου θα σας εξηγήσει πως ρυθμίζεται το
- X11, και πως να στήσετε ένα παραγωγικό desktop περιβάλλον.</para>
- </sect1>
-
- <sect1 xml:id="x-config">
- <info><title>Ρύθμιση του X11</title>
- <authorgroup>
- <author><personname><firstname>Christopher</firstname><surname>Shumway</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <indexterm><primary>&xorg;</primary></indexterm>
- <indexterm><primary>X11</primary></indexterm>
-
- <sect2>
- <title>Πριν ξεκινήσετε</title>
-
- <para>Στις περισσότερες περιπτώσεις, το Χ11 ρυθμίζεται αυτόματα.
- Αν το σύστημα σας είναι παλιό ή διαθέτει εξεζητημένα εξαρτήματα,
- θα είναι χρήσιμο να μαζέψετε κάποιες επιπλέον πληροφορίες σχετικά
- με το υλικό σας πριν ξεκινήσετε τη ρύθμιση.</para>
-
- <itemizedlist>
- <listitem><para>Συχνότητες λειτουργίας της οθόνης σας</para></listitem>
- <listitem><para>Chipset της κάρτας γραφικών</para></listitem>
- <listitem><para>Μνήμη της κάρτας γραφικών</para></listitem>
- </itemizedlist>
-
- <indexterm>
- <primary>οριζόντιος ρυθμός ανανέωσης</primary>
- <see>οριζόντια συχνότητα συγχρονισμού</see>
- </indexterm>
- <indexterm><primary>ρυθμός ανανεώσης</primary></indexterm>
- <indexterm>
- <primary>κατακόρυφος ρυθμός ανανέωσης</primary>
- <see>ρυθμός ανανέωσης</see>
- </indexterm>
-
- <para>Η ανάλυση της οθόνης και ο ρυθμός ανανέωσης προσδιορίζονται
- από τις οριζόντιες και κατακόρυφες συχνότητες συγχρονισμού της
- οθόνης. Σχεδόν όλες οι οθόνες υποστηρίζουν αυτόματη ανίχνευση
- αυτών των τιμών. Κάποια μοντέλα δεν παρέχουν αυτές τις τιμές
- τις οποίες θα πρέπει να βρείτε στο εγχειρίδιο της οθόνης ή στην
- ιστοσελίδα του κατασκευαστή.</para>
-
- <para>Το chipset (ολοκληρωμένο κύκλωμα) της κάρτας γραφικών ανιχνεύεται
- επίσης αυτόματα και χρησιμοποιείται για να επιλεγεί το κατάλληλο
- πρόγραμμα οδήγησης. Είναι ωστόσο χρήσιμο να γνωρίζετε το μοντέλο
- για την περίπτωση που η αυτόματη ανίχνευση δεν είναι επιτυχής.</para>
-
- <para>Η μνήμη της κάρτας γραφικών καθορίζει την ανάλυση και το βάθος
- χρώματος στο οποίο μπορεί να δουλέψει το σύστημα.</para>
- </sect2>
-
- <sect2>
- <title>Ρύθμιση του X11</title>
-
- <para>Το <application>&xorg;</application>
- χρησιμοποιεί το <acronym>HAL</acronym> για την
- αυτόματη ανίχνευση του πληκτρολογίου και του ποντικιού. Τα ports
- <package>sysutils/hal</package> και
- <package>devel/dbus</package> εγκαθίστανται ως
- εξαρτήσεις του <package>x11/xorg</package>, αλλά
- θα πρέπει να ενεργοποιηθούν με τις ακόλουθες εγγραφές στο
- <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>/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>/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>
- στην ενότητα <literal>"Monitor"</literal>:</para>
-
- <programlisting>Section "Monitor"
- Identifier "Monitor0"
- VendorName "Monitor Vendor"
- ModelName "Monitor Model"
- HorizSync 30-107
- VertRefresh 48-120
-EndSection</programlisting>
-
- <para>Οι περισσότερες οθόνες υποστηρίζουν αυτόματη ανίχνευση των
- συχνοτήτων λειτουργίας, καθιστώντας έτσι αχρείαστη τη χειροκίνητη
- καταχώριση αυτών των τιμών. Για τις λίγες περιπτώσεις που δε
- υποστηρίζεται η αυτόματη ανίχνευση, συνίσταται να χρησιμοποιήσετε
- τις τιμές που δίνει ο κατασκευαστής για να αποφύγετε πιθανές βλάβες
- στο υλικό σας.</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; <literal>i810</literal> Graphics
- Chipsets</title>
-
- <indexterm><primary>Intel i810 graphic chipset</primary></indexterm>
-
- <para>Για να χρησιμοποιήσετε κάρτα βασισμένη στα &intel; i810
- integrated chipsets, απαιτείται το <filename>agpgart</filename>,
- η διεπαφή προγραμματισμού των 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 xml:id="x-fonts">
- <info><title>Χρήση Γραμματοσειρών στο X11</title>
- <authorgroup>
- <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <sect2 xml:id="type1">
- <title>Γραμματοσειρές τύπου Type1</title>
-
- <para>Οι προκαθορισμένες γραμματοσειρές που συνοδεύουν το
- X11 δεν είναι ιδανικές για εφαρμογές επιτραπέζιας τυπογραφίας.
- Οι μεγάλες γραμματοσειρές παρουσίασης φαίνονται οδοντωτές και
- ερασιτεχνικές, και οι μικρές γραμματοσειρές στο
- <application>&netscape;</application> είναι σχεδόν ακατάληπτες.
- Ευτυχώς όμως, υπάρχουν διαθέσιμες αρκετές, υψηλής ποιότητας
- γραμματοσειρές Type1 (&postscript;) που μπορούν να χρησιμοποιηθούν
- άμεσα από το X11. Για παράδειγμα, η συλλογή γραμματοσειρών URW
- (<package>x11-fonts/urwfonts</package>) περιέχει
- εκδόσεις υψηλής ποιότητας των συνηθισμένων type1 γραμματοσειρών
- (<trademark class="registered">Times Roman</trademark>,
- <trademark class="registered">Helvetica</trademark>,
- <trademark class="registered">Palatino</trademark> και άλλες). Η
- συλλογή Freefonts
- (<package>x11-fonts/freefonts</package>) περιέχει
- πολλές περισσότερες γραμματοσειρές, αλλά οι περισσότερες από αυτές
- είναι για λογισμικό γραφικών όπως το <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 xml: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; ως <package>x11-fonts/ttmkfdir</package>.</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 xml:id="antialias">
- <info><title>Anti-Aliased Γραμματοσειρές</title>
- <authorgroup>
- <author><personname><firstname>Joe Marcus</firstname><surname>Clarke</surname></personname><contrib>Ανανεώθηκε από τον </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 xml:id="x-xdm">
- <info><title>Ο X Display Manager</title>
- <authorgroup>
- <author><personname><firstname>Seth</firstname><surname>Kingsley</surname></personname><contrib>Συνεισφορά του </contrib></author>
- </authorgroup>
- </info>
-
-
-
- <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 <package>x11/xdm</package> (δεν εγκαθίσταται από προεπιλογή
- στις πρόσφατες εκδόσεις του <application>&xorg;</application>).
- Μπορείτε έπειτα να βρείτε τον δαίμονα <application>XDM</application>
- στο <filename>/usr/local/bin/xdm</filename>. Αυτό το πρόγραμμα
- μπορεί να εκτελεστεί οποιαδήποτε στιγμή ως <systemitem class="username">root</systemitem>
- και θα ξεκινήσει να διαχειρίζεται την οθόνη του 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 xml:id="x11-wm">
- <info><title>Γραφικά Περιβάλλοντα</title>
- <authorgroup>
- <author><personname><firstname>Valentino</firstname><surname>Vaschetto</surname></personname><contrib>Συνεισφορά του </contrib></author>
- <!-- June 2001 -->
- </authorgroup>
- </info>
-
-
-
- <para>Αυτό το τμήμα περιγράφει μερικά γραφικά περιβάλλοντα που διατίθενται
- για το X στο &os;. Η έννοια <quote>γραφικό περιβάλλον</quote>
- μπορεί να σημαίνει οτιδήποτε, από έναν απλό διαχειριστή παραθύρων μέχρι
- ένα ολοκληρωμένα πακέτο desktop εφαρμογών, όπως το
- <application>KDE</application> ή το
- <application>GNOME</application>.</para>
-
- <sect2 xml:id="x11-wm-gnome">
- <title>GNOME</title>
-
- <sect3 xml: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; μπορούν να βρεθούν στο διαδικτυακό τόπο του <link xlink:href="http://www.FreeBSD.org/gnome">&os; GNOME Project</link>. Η
- τοποθεσία περιέχει επίσης και αναλυτικά FAQs σχετικά με την
- εγκατάσταση, την ρύθμιση, και την διαχείριση του
- <application>GNOME</application>.</para>
- </sect3>
-
- <sect3 xml: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 xml:id="x11-wm-kde">
- <title>KDE</title>
-
- <indexterm><primary>KDE</primary></indexterm>
-
- <sect3 xml: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>
- διατίθεται σε περισσότερες από 55 γλώσσες</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>
- μπορείτε να βρείτε στο <link xlink:href="http://www.kde.org/">KDE
- website</link>. Για πληροφορίες σχετικές με το &os;
- και το <application>KDE</application>, συμβουλευθείτε τον
- διαδικτυακό τόπο του
- <link xlink:href="http://freebsd.kde.org/">KDE/FreeBSD</link>.</para>
-
- <para>Υπάρχουν διαθέσιμες δύο εκδόσεις του
- <application>KDE</application> για το &os;. Η Έκδοση
- 3, κυκλοφορεί αρκετό καιρό και είναι ακόμα διαθέσιμη στη Συλλογή
- των Ports αν και δεν συντηρείται πλέον και παρουσιάζει προβλήματα.
- Η έκδοση 4 ανανεώνεται συνεχώς και είναι η προεπιλογή των
- χρηστών του <application>KDE</application>.
- Οι δύο αυτές εκδόσεις μπορούν κάλιστα να συνυπάρχουν στον ίδιο
- υπολογιστή.</para>
- </sect3>
-
- <sect3 xml:id="x11-wm-kde-install">
- <title>Εγκατάσταση του KDE</title>
-
- <para>Όπως και με το <application>GNOME</application> ή κάθε
- άλλο γραφικό περιβάλλον, το λογισμικό μπορεί να εγκατασταθεί εύκολα
- μέσω πακέτων ή από την Συλλογή των Ports:</para>
-
- <para>Για να εγκαταστήσετε το <application>KDE 3</application> μέσω
- πακέτων από το δίκτυο, απλώς πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r kde</userinput></screen>
-
- <para>Για να εγκαταστήσετε το <application>KDE 4</application> μέσω
- πακέτων από το δίκτυο, απλώς πληκτρολογήστε:</para>
-
- <screen>&prompt.root; <userinput>pkg_add -r kde4</userinput></screen>
-
- <para>Το &man.pkg.add.1; θα ανακτήσει αυτόματα την τελευταία έκδοση
- της εφαρμογής.</para>
-
- <para>Για να μεταγλωττίσετε το <application>KDE 3</application> από
- τον πηγαίο κώδικα, χρησιμοποιήστε τη Συλλογή των Ports:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde3</userinput>
-&prompt.root; <userinput>make install clean</userinput></screen>
-
- <para>Για να μεταγλωττίσετε το <application>KDE 4</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>KDE 3</application>:</para>
-
- <screen>&prompt.user; <userinput>echo "exec startkde" &gt; ~/.xinitrc</userinput></screen>
-
- <para>Για το <application>KDE 4</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 xml: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 xml: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>KDE 3</application>, θα πρέπει να
- τροποποιήσετε την εγγραφή για το <literal>ttyv8</literal> στο
- <filename>/etc/ttys</filename>, όπως φαίνεται παρακάτω:</para>
-
- <programlisting>ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure</programlisting>
-
- <para>Για το <application>KDE 4</application>, θα πρέπει να
- προσαρτήσετε το &man.procfs.5; και να προσθέσετε
- την παρακάτω γραμμή στο <filename>/etc/rc.conf</filename>:</para>
-
- <programlisting>kdm4_enable="YES"</programlisting>
- </sect3>
- </sect2>
-
- <sect2 xml:id="x11-wm-xfce">
- <title>Xfce</title>
-
- <sect3 xml: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>
- μπορείτε να βρείτε στη <link xlink:href="http://www.xfce.org/">δικτυακή
- τοποθεσία του Xfce</link>.</para>
- </sect3>
-
- <sect3 xml: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>