diff --git a/LDP/builder-2016/Makefile b/LDP/builder-2016/Makefile
new file mode 100644
index 00000000..6e36b2d0
--- /dev/null
+++ b/LDP/builder-2016/Makefile
@@ -0,0 +1,280 @@
+# -- Makefile for handling TLDP documentation
+#
+#
+
+default: all
+
+DESTDIR := output
+NODESTDIR := $(shell stat 2>/dev/null -t $(DESTDIR))
+ifeq ($(NODESTDIR),)
+ $(error ENOENT (2): $(DESTDIR); please create or specify alternate DESTDIR directory)
+endif
+
+WORKING := working
+NOWORKING := $(shell stat 2>/dev/null -t $(WORKING))
+ifeq ($(NOWORKING),)
+ $(error ENOENT (2): $(WORKING); please create or specify alternate WORKING directory)
+endif
+
+ifeq ($(OBJ),)
+ $(error OBJ not specified, please supply a DocBook SGML source file)
+endif
+
+FLAVOR=$(shell awk -F= '/^ID=/{print $$2}' /etc/os-release)
+ifeq ($(FLAVOR),ubuntu)
+ # -- Ubuntu:
+ # -- for DocBook SGML (DSSSL) processing
+ LDPDSL := /usr/share/sgml/docbook/stylesheet/dsssl/ldp/ldp.dsl
+ DBDSL := /usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
+ COLLATE := /usr/bin/collateindex.pl
+ # -- for DocBook XML (XSLT layer) processing
+ XSLCHUNK := /usr/share/xml/docbook/stylesheet/ldp/html/tldp-sections.xsl
+ XSLSINGLE := /usr/share/xml/docbook/stylesheet/ldp/html/tldp-one-page.xsl
+ XSLPRINT := /usr/share/xml/docbook/stylesheet/ldp/fo/tldp-print.xsl
+else ifeq ($(FLAVOR),opensuse)
+ # -- OpenSUSE-13.2
+ # -- for DocBook SGML (DSSSL) processing
+ DBDSL := /usr/share/sgml/docbook/dsssl-stylesheets-1.79/html/docbook.dsl
+ COLLATE := /usr/share/sgml/docbook/dsssl-stylesheets-1.79/bin/collateindex.pl
+ LDPDSL := /home/mabrown/vcs/LDP/LDP/builder/dsssl/ldp.dsl
+ # -- for DocBook XML (XSLT layer) processing
+ XSLCHUNK := /home/mabrown/vcs/LDP/LDP/builder/xsl/ldp-html-chunk.xsl
+ XSLSINGLE := /home/mabrown/vcs/LDP/LDP/builder/xsl/ldp-html.xsl
+ XSLPRINT := /home/mabrown/vcs/LDP/LDP/builder/xsl/ldp-print.xsl
+else
+ $(error Sorry, unknown/untested flavor of Linux, $(FLAVOR))
+endif
+
+# -- standard definitions and other little tools
+#
+XML_CATALOG_FILES := /etc/xml/catalog
+PERL := $(shell which perl 2>/dev/null)
+VERBOSE :=
+
+OBJDIR := $(dir $(OBJ))
+OBJFORMAT := $(lastword $(subst ., ,$(suffix $(OBJ))))
+OBJFILE := $(notdir $(OBJ))
+OBJSTEM := $(OBJFILE:.$(OBJFORMAT)=)
+OBJINDEX := $(abspath $(OBJDIR)/index.sgml)
+
+ifeq ($(OBJFORMAT),sgml)
+ LINUXDOC := $(shell head -n 5 "$(OBJ)" | tr A-Z a-z | awk '/doctype linuxdoc system/{ print $$2}')
+ ifeq ($(LINUXDOC),linuxdoc)
+ OBJFORMAT = linuxdoc
+ endif
+endif
+
+OUTDIR = $(abspath $(abspath $(WORKING))/$(OBJSTEM))
+
+FO = $(abspath $(OUTDIR)/$(OBJSTEM).fo)
+PDF = $(abspath $(OUTDIR)/$(OBJSTEM).pdf)
+HTML = $(abspath $(OUTDIR)/$(OBJSTEM).html)
+HTMLS = $(abspath $(OUTDIR)/$(OBJSTEM)-single.html)
+TEXT = $(abspath $(OUTDIR)/$(OBJSTEM).txt)
+
+
+# - - - - - - - - - - - - - - - - - - - - - - -
+# generic targets
+# - - - - - - - - - - - - - - - - - - - - - - -
+
+all: announce clear_$(OUTDIR) $(OBJFORMAT)-all
+ rsync $(VERBOSE) --archive --delay-updates --delete-after --partial $(OUTDIR)/ $(DESTDIR)/$(OBJSTEM)/
+
+clear_$(OUTDIR):
+ (test ! -d $(OUTDIR) || ( cd $(dir $(OUTDIR)) && rm -rf $(VERBOSE) -- $(notdir $(OUTDIR))))
+
+$(OUTDIR): $(WORKING)
+ mkdir $(OUTDIR)
+
+$(OUTDIR)/images $(OUTDIR)/resources: $(OUTDIR)
+ (cd $(OBJDIR) && test ! -d $(notdir $@) || rsync -aL $(VERBOSE) ./$(notdir $@) $(OUTDIR))
+
+.PHONY: announce
+announce:
+ $(info Detected $(OBJ) file as $(OBJFORMAT).)
+
+# - - - - - - - - - - - - - - - - - - - - - - -
+# specific handling for DocBook SGML documents
+# - - - - - - - - - - - - - - - - - - - - - - -
+
+.PHONY: sgml-all
+sgml-all: sgml-$(OBJINDEX) sgml-$(HTMLS) sgml-$(TEXT) sgml-$(PDF) sgml-$(HTML)
+ rm -f -- "$(OBJINDEX)"
+
+.PHONY: sgml-$(OBJINDEX)
+sgml-$(OBJINDEX): $(OUTDIR)/images $(OUTDIR)/resources
+ (cd $(OUTDIR) \
+ && $(PERL) $(COLLATE) -N -o "$(OBJINDEX)" \
+ && openjade -t sgml -V html-index -d "$(DBDSL)" "$(OBJ)" \
+ && $(PERL) $(COLLATE) -g -t Index -i doc-index -o "$(notdir $(OBJINDEX))" HTML.index "$(OBJ)" \
+ && mv -f $(VERBOSE) -- $(notdir $(OBJINDEX)) $(dir $(OBJINDEX)) \
+ && find . -mindepth 1 -maxdepth 1 -type f -print0 | xargs --null --no-run-if-empty -- rm -f --)
+
+.PHONY: sgml-$(HTMLS)
+sgml-$(HTMLS): $(OUTDIR)/resources $(OUTDIR)/images $(INDEX)
+ # -- note the mv -vu $(notdir $(HTML)) $(notdir $(HTMLS))
+ # the docbook2html processor will create a single-page
+ # HTML file called $(OBJSTEM).html. We want to name it
+ # $(OBJSTEM)-single.html, so that, later, $(OBJSTEM).html
+ # can be the main output for chunked HTML
+ #
+ (cd $(OUTDIR) \
+ && jw -f docbook -b html \
+ --dsl "$(LDPDSL)#html" \
+ -V nochunks \
+ -V '%callout-graphics-path%=images/callouts/' \
+ -V '%stock-graphics-extension%=.png' \
+ -V '%stylsheet-type%=freddie.css' \
+ --output . \
+ $(OBJ) \
+ && mv --update $(VERBOSE) -- $(notdir $(HTML)) $(notdir $(HTMLS)))
+
+.PHONY: sgml-$(TEXT)
+sgml-$(TEXT): sgml-$(HTMLS)
+ (cd $(OUTDIR) && html2text -style pretty -nobs $(notdir $(HTMLS)) > $(notdir $@))
+
+.PHONY: sgml-$(PDF)
+sgml-$(PDF): $(OUTDIR)
+ ( cd $(OUTDIR) \
+ && jw -f docbook -b pdf --output . $(OBJ) \
+ || dblatex -F sgml -t pdf -o sgml-$(PDF) $(OBJ))
+
+.PHONY: sgml-$(HTML)
+sgml-$(HTML): $(OUTDIR)
+ # -- the jade DocBook processing toolchain produces an HTML output
+ # file called index.html in the chunked output; therefore, we want
+ # to create a link from Some-Name.html to index.html; if TLDP
+ # wishes to do something else with index.html, this is the place
+ # to change it (for SGML DocBook inputs, anyway).
+ #
+ ( cd $(OUTDIR) \
+ && jw -f docbook -b html \
+ --dsl "$(LDPDSL)#html" \
+ -V '%admon-graphics-path%=images/' \
+ -V '%callout-graphics-path%=images/callouts/' \
+ -V '%stock-graphics-extension%=.png' \
+ --output . \
+ $(OBJ) \
+ && ln -snf $(VERBOSE) -- index.html $(notdir $(HTML)))
+
+
+# - - - - - - - - - - - - - - - - - - - - - - -
+# specific handling for DocBook XML documents
+# - - - - - - - - - - - - - - - - - - - - - - -
+
+.PHONY: xml-all
+xml-all: xml-$(HTMLS) xml-$(TEXT) xml-$(PDF) xml-$(HTML)
+
+.PHONY: xml-$(HTMLS)
+xml-$(HTMLS): $(OUTDIR) $(OUTDIR)/images $(OUTDIR)/resources
+ # -- note the mv -vu $(notdir $(HTML)) $(notdir $(HTMLS))
+ # the docbook2html processor will create a single-page
+ # HTML file called $(OBJSTEM).html, which we will want
+ # to create as a symlink, later
+ (cd $(OUTDIR) \
+ && XML_CATALOG_FILES="$(XML_CATALOG_FILES)" \
+ xsltproc > "$(notdir $(HTMLS))" \
+ --nonet \
+ --stringparam admon.graphics.path images/ \
+ --stringparam base.dir . \
+ "$(XSLSINGLE)" "$(OBJ)")
+ # -- what about images and other resources?
+
+.PHONY: xml-$(TEXT)
+xml-$(TEXT): xml-$(HTMLS)
+ (cd $(OUTDIR) && html2text -style pretty -nobs $(notdir $(HTMLS)) > $(notdir $@))
+
+.PHONY: xml-$(FO)
+xml-$(FO): $(OUTDIR)
+ (cd $(OUTDIR) \
+ && XML_CATALOG_FILES=/etc/xml/catalog \
+ xsltproc > "$(notdir $(FO))" \
+ --nonet \
+ "$(XSLPRINT)" "$(OBJ)")
+
+.PHONY: xml-$(PDF)
+xml-$(PDF): xml-$(FO)
+ (fop -fo $(FO) -pdf $(PDF) && rm -f $(FO) \
+ || dblatex -F xml -t pdf -o $(PDF) $(OBJ))
+
+xml-$(HTML): xml-$(HTMLS)
+ (cd $(OUTDIR) \
+ && XML_CATALOG_FILES=/etc/xml/catalog \
+ xsltproc \
+ --nonet \
+ --stringparam admon.graphics.path images/ \
+ --stringparam base.dir . \
+ "$(XSLCHUNK)" "$(OBJ)" \
+ && ln -snf $(VERBOSE) -- index.html $(notdir $(HTML)))
+ # -- what about images and other resources?
+
+
+# - - - - - - - - - - - - - - - - - - - - - - -
+# specific handling for LinuxDoc documents
+# - - - - - - - - - - - - - - - - - - - - - - -
+
+.PHONY: linuxdoc-all
+linuxdoc-all: linuxdoc-$(HTMLS) linuxdoc-$(TEXT) linuxdoc-$(PDF) linuxdoc-$(HTML)
+
+.PHONY: linuxdoc-$(HTMLS)
+linuxdoc-$(HTMLS): $(OUTDIR)/images
+ # -- note the mv -vu $(notdir $(HTML)) $(notdir $(HTMLS))
+ # the docbook2html processor will create a single-page
+ # HTML file called $(OBJSTEM).html, which we will want
+ # to create as a symlink, later
+ (cd $(OUTDIR) \
+ && sgml2html --split=0 $(OBJ) \
+ && mv --update $(VERBOSE) -- $(notdir $(HTML)) $(notdir $(HTMLS)))
+ # -- what about images and other resources?
+
+.PHONY: linuxdoc-$(TEXT)
+linuxdoc-$(TEXT): linuxdoc-$(HTMLS)
+ (cd $(OUTDIR) && html2text -style pretty -nobs $(notdir $(HTMLS)) > $(notdir $(TEXT)))
+
+.PHONY: linuxdoc-$(PDF)
+linuxdoc-$(PDF): linuxdoc-$(HTMLS)
+ ( cd $(OUTDIR) \
+ && htmldoc \
+ --size universal \
+ -t pdf \
+ --firstpage p1 \
+ --outfile $(notdir $(PDF)) $(notdir $(HTMLS)))
+
+.PHONY: linuxdoc-$(HTML)
+linuxdoc-$(HTML): $(OUTDIR)
+ # -- LinuxDoc processing tools create the output document file as
+ # Some-Name.html (and Some-Name-1.html, Some-Name-2.html), so we
+ # should create a symlink from index.html to the Some-Name.html.
+ ( cd $(OUTDIR) \
+ && sgml2html $(OBJ) \
+ && ln -snf $(VERBOSE) -- $(notdir $(HTML)) index.html)
+ # -- what about images and other resources?
+
+# - - - - - - - - - - - - - - - - - - - - - - -
+# more general fragments for Makefile degubbing
+# - - - - - - - - - - - - - - - - - - - - - - -
+
+vars:
+ @printf "%s\n" \
+ "OBJ = $(OBJ)" \
+ "OBJDIR = $(OBJDIR)" \
+ "OBJINDEX = $(OBJINDEX)" \
+ "OBJFORMAT = $(OBJFORMAT)" \
+ "OBJFILE = $(OBJFILE)" \
+ "OBJSTEM = $(OBJSTEM)" \
+ "OUTDIR = $(OUTDIR)" \
+ "PDF = $(PDF)" \
+ "HTML = $(HTML)" \
+ "HTMLS = $(HTMLS)" \
+ "TEXT = $(TEXT)" \
+ "DESTDIR = $(DESTDIR)" \
+
+
+
+.PHONY: help
+help:
+ @printf "%s\n" \
+ "There will be help here in the future."
+
+#
+# -- end of file
diff --git a/LDP/builder-2016/README b/LDP/builder-2016/README
new file mode 100644
index 00000000..31155c0e
--- /dev/null
+++ b/LDP/builder-2016/README
@@ -0,0 +1,42 @@
+produce-ldp-outputs README
+--------------------------
+The produce-ldp-outputs is a shell script (and Makefile) which operates on an
+LDP checkout and generates text, PDF and HTML (single-page and chunked)
+outputs into a flat hierarchy.
+
+
+Software dependencies:
+----------------------
+
+ * Package load to allow functioning on Ubuntu-14.04.3
+ - git{,-core,-doc,-man}
+ - docbook{,-dsssl,-xsl,-utils}
+ - htmldoc{,-common}
+ - xsltproc
+ - fop
+ - sgml2x
+ - openjade
+ - opensp
+ - ldp-docbook-xsl
+ - ldp-docbook-dsssl
+ - html2text
+ - linuxdoc-tools{,-text,-latex}
+ - make
+ - rsync
+ - coreutils
+
+ * Package load to allow functioning on OpenSUSE-13.2
+
+ - docbook_{3,4,5}
+ - docbook5-xsl-stylesheets
+ - docbook-dsssl-stylesheets
+ - docbook-{simple,toys,utils,utils-minimal}
+ - docbook-xsl-stylesheets
+ - openjade
+ - sgmltool
+ - htmldoc
+ - html2text
+ - make
+ - rsync
+ - coreutils
+
diff --git a/LDP/builder-2016/TODO b/LDP/builder-2016/TODO
new file mode 100644
index 00000000..bbbf8686
--- /dev/null
+++ b/LDP/builder-2016/TODO
@@ -0,0 +1,21 @@
+TODO produce-ldp-outputs
+------------------------
+
+ * instead of requiring directory, working, use mktemp -d
+ * add support for varied verbosity levels
+ * figure out the TLDP XSL stylesheet support question)
+ (no such package for OpenSUSE; Frank Lichtenheld's upstream Debian
+ packages require minor changes to generate FOP outputs)
+
+XSL changes:
+------------
+Fundamentally, we simply need to turn off fop.extensions and turn on
+fop1.extensions in order to be able to generate PDFs from our DocBook sources.
+
+
+
+
+
+
+
+
diff --git a/LDP/builder-2016/produce-ldp-outputs b/LDP/builder-2016/produce-ldp-outputs
new file mode 100755
index 00000000..3e4f8f49
--- /dev/null
+++ b/LDP/builder-2016/produce-ldp-outputs
@@ -0,0 +1,343 @@
+#! /bin/bash
+#
+# -- Program to locate all DocBook and LinuxDoc files in The Linux
+# Documentation Project (TLDP) Version Control System (VCS) and
+# produce HTML, PDF and text outputs (with companion Makefile)
+#
+# -- License: GPLv2
+#
+# -- written for TLDP in January 2016; Martin A. Brown
+#
+
+set -e
+# set -x
+
+SELFNAME="$( readlink --canonicalize ${0})"
+ME="${SELFNAME##*/}" # -- basename
+DIR="${SELFNAME%/*}" # -- dirname
+MAKEFILE="${DIR}/Makefile"
+
+VCSBASE="${1:-$HOME/vcs/LDP/LDP}" && shift
+DESTDIR="${1:-$PWD/output}" && shift
+
+SOURCES=""
+SOURCES="${SOURCES} ${VCSBASE}/faq/linuxdoc"
+SOURCES="${SOURCES} ${VCSBASE}/guide/linuxdoc"
+SOURCES="${SOURCES} ${VCSBASE}/howto/linuxdoc"
+
+SOURCES="${SOURCES} ${VCSBASE}/faq/docbook"
+SOURCES="${SOURCES} ${VCSBASE}/guide/docbook"
+SOURCES="${SOURCES} ${VCSBASE}/howto/docbook"
+SOURCES="${SOURCES} ${VCSBASE}/ref/docbook"
+
+# -- my favorite shell functions (and their offspring)
+#
+gripe () { printf >&2 "%s\n" "$@"; }
+debug () { : ; } # -- NOOP for now
+notice () { gripe "${ME}[$$]: $@"; }
+abort () {
+ EXIT_CODE="${1}" && shift;
+ gripe "E: $@";
+ exit $EXIT_CODE;
+}
+
+# -- defaults for logging output; override these in environment
+# if you care
+#
+ : "${LOG_FACILITY:=daemon}"
+ : "${LOG_PRIO:=err}"
+ : "${LOGGER_OPTS:=-t ${ME}[$$] -p ${LOG_FACILITY}.${LOG_PRIO}}"
+
+# -- if we are connected to a terminal, then send logging output
+# to STDERR, as well
+
+# -- create logger as a shell function
+#
+logger () {
+ tty -s && LOGGER_OPTS="-s $LOGGER_OPTS"
+ command logger $LOGGER_OPTS -- "$@" ;
+}
+
+usage () {
+ gripe "usage: ${ME} [ []]" \
+ " default ldp_checkout=${VCSBASE}" \
+ " default destdir=${DESTDIR}" \
+ ""
+ abort 1 "$@";
+}
+
+# - - - - - - - - - - - -
+function select_source_files () {
+# - - - - - - - - - - - -
+#
+# -- return a list of filenames in any directory which are (likely)
+# to be documents for TLDP
+# args 1: file extension sought
+# args +2: base directories in which to seek
+
+ local ext=${1} && shift
+
+ for d in $@; do
+
+ test -e "$d" || abort 2 "ENOENT (2): No such file or directory: ${d}"
+ test -d "$d" || abort 20 "ENOTDIR (20): Not a directory: ${d}";
+
+ # -- locate each solo text document, e.g. XWindow-User-HOWTO.xml
+ #
+ find "$d" -mindepth 1 -maxdepth 1 -type f -name \*."${ext}" -printf "%p\n"
+
+ # -- locate each document owning a directory, e.g. 8021X-HOWTO/8021X-HOWTO.sgml
+ #
+ {
+ find "$d" -mindepth 1 -maxdepth 1 -type d -printf "%p\n" | while read DIR; do
+
+ # -- get just the stem of the document name from the directory, e.g. 8021X-HOWTO
+ stem=${DIR##*/}
+
+ # -- construct an abspath, e.g. /full/path/to/8021X-HOWTO/8021X-HOWTO.sgml
+ doc="${DIR}/${stem}.${ext}"
+
+ # -- see if file exists, and if so, print its name
+ # File existence test logic is reversed, because this script runs
+ # with "set -e". If the test for existence fails, then the script
+ # stops (this should be familiar to those who have written
+ # Makefiles).
+ #
+ test ! -e "${doc}" || printf "%s\n" "${doc}"
+
+ done
+ }
+
+ done
+}
+
+# - - - - - - - - - - - -
+ list_output_documents () {
+# - - - - - - - - - - - -
+#
+# -- by definition, each directory in the output tree
+# is named by the STEM, so this produces a list of the
+# stem names of the documents that have been produced
+#
+ find "$@" -mindepth 1 -maxdepth 1 -printf "%P\n";
+}
+
+# - - - - - - - - - - - -
+ list_source_documents () {
+# - - - - - - - - - - - -
+#
+ select_source_files xml "$@";
+ select_source_files sgml "$@";
+}
+
+# - - - - - - - - - - - -
+ get_stem () {
+# - - - - - - - - - - - -
+#
+# -- filter filenames and produce stem names
+# - no args
+# - STDIN: A filename (can be full filename)
+# - STDOUT: Just the stem name.
+#
+ while read FULLNAME ; do
+ fn="${FULLNAME##*/}"
+ printf "%s\n" "${fn%.*}";
+ done
+}
+
+# - - - - - - - - - - - -
+ sort_by_stem () {
+# - - - - - - - - - - - -
+#
+# -- typical decorate, sort, undecorate pattern, though,
+# admittedly, not common in shell
+# - no args
+# - STDIN: stream of strings with full path
+# - STDOUT: stem-sorted stream of strings with full path
+#
+ {
+ {
+ while read OBJ; do
+ stem=$( printf "%s\n" "$OBJ" | get_stem )
+ printf "%s %s\n" "${stem}" "$OBJ"
+ done;
+ } | sort;
+ } | awk '{print $2}';
+}
+
+# - - - - - - - - - - - -
+ find_sort_by_mtime () {
+# - - - - - - - - - - - -
+#
+ local SOURCE="${1}" && shift
+ local OUTPUT="${1}" && shift
+ {
+ # -- directory age does not count, only file age!
+ #
+ test -e "${SOURCE}" \
+ || abort 2 "ENOENT (2): we thought this directory just existed: ${SOURCE}"
+ find "$SOURCE" -type f -printf "%T@ SOURCE %p\n";
+
+ test -d "${OUTPUT}" \
+ && find "$OUTPUT" -type f -printf "%T@ OUTPUT %p\n";
+
+ } | sort -gr;
+}
+
+# - - - - - - - - - - - -
+function is_output_current () {
+# - - - - - - - - - - - -
+#
+# -- return a list of filenames in any directory which are (likely)
+# to be documents for TLDP
+# args 1: input file name
+# args 2: DESTDIR
+#
+# -- there are two (probable) cases for the input, A) a single standalone
+# file or B) the main document source file in a dedicated directory;
+# below is a description of the logic....
+#
+# Case A) single standalone file; we don't want to find all files from
+# the parent directory
+#
+# OBJ=/home/fred/vcs/LDP/LDP/howto/docbook/Software-Release-Practice-HOWTO.xml
+# DESTDIR=/home/fred/wip/tldp/output
+# fn=Software-Release-Practice-HOWTO.xml
+# stem=Software-Release-Practice-HOWTO
+# parentdir=/home/fred/vcs/LDP/LDP/howto/docbook
+# parentstem=docbook
+#
+# Case B) main document source file in a dedicated directory; we do want
+# to look for all files starting from the parent directory
+#
+# OBJ=/home/fred/vcs/LDP/LDP/howto/docbook/Jabber-Server-Farming-HOWTO/Jabber-Server-Farming-HOWTO.xml
+# DESTDIR=/home/fred/wip/tldp/output
+# fn=Jabber-Server-Farming-HOWTO.xml
+# stem=Jabber-Server-Farming-HOWTO
+# parentdir=/home/fred/vcs/LDP/LDP/howto/docbook/Jabber-Server-Farming-HOWTO
+# parentstem=Jabber-Server-Farming-HOWTO
+#
+ local stem="${1}" && shift
+ local OBJ="${1}" && shift
+ local DESTDIR="${1}" && shift
+
+ local parentdir="${OBJ%/*}"
+ local parentstem="${parentdir##*/}"
+
+ startloc="$OBJ"
+ test "${stem}" == "${parentstem}" \
+ && startloc="${parentdir}"
+
+ local outdir="${DESTDIR}/${stem}"
+
+ result=$( find_sort_by_mtime "$startloc" "$outdir" ) \
+ || abort 1 "Could not retrieve files for $stem sorted by mtime."
+ newest=$( head -n 1 <<<"$result" ) \
+ || abort 1 "Could not get first result for $stem files."
+
+ DECISION=$( sed -e '/ OUTPUT /,$d' <<<"$newest" ) \
+ || abort 1 "Could not check if the SOURCE files are newest...."
+
+ if test -z "$DECISION" ; then
+ debug "${stem} No new source files"
+ return 0
+ else
+
+ # -- squawk about it, to the user
+ #
+ while read TS SOURCE FNAME ; do
+ ts=$( date +%F-%T --date @"$TS" )
+ notice "${stem} updated file found ($ts): $FNAME"
+ done <<< "$DECISION"
+
+ return 1
+ fi
+}
+
+# - - - - - - - - - - - -
+ generate_new_content () {
+# - - - - - - - - - - - -
+#
+ local stem="${1}" && shift
+ local OBJ="${1}" && shift
+ local DESTDIR="${1}" && shift
+ #local makefile="${1}" && shift
+
+ # -- make a stab at processing the document, but don't let the driver
+ # stop just because a single document has an error
+ #
+ {
+ {
+ exec 2>&1;
+ make -f "$MAKEFILE" OBJ="${OBJ}" DESTDIR="${DESTDIR}";
+ test $? -eq 0 \
+ || gripe "FAILURE" "FAILURE producing all outputs from $OBJ" "FAILURE";
+ } | sed -ue "s/^/${stem} /";
+ } | command logger -s ${LOGGER_OPTS} --
+}
+
+# - - - - - - - - - - - -
+ list_orphaned_outputs () {
+# - - - - - - - - - - - -
+#
+ local DESTDIR="${1}" && shift
+ local SOURCES="$@"
+ {
+ SOURCEDOCS=$( list_source_documents "${SOURCES}" | get_stem | sort )
+ OUTPUTDOCS=$( list_output_documents "${DESTDIR}" | sort )
+
+ # -- list documents in source tree that do not have corresponding
+ # output directory
+ #
+ diff -Nur -- <( printf "%s\n" "$SOURCEDOCS" ) <( printf "%s\n" "$OUTPUTDOCS" ) \
+ | tail -n +2 \
+ | grep -- '^-' \
+ | sed -e 's|^-|Unbuilt source document |';
+
+ # -- list documents in output tree that do not have corresponding
+ # input directory
+ #
+ diff -Nur -- <( printf "%s\n" "$OUTPUTDOCS" ) <( printf "%s\n" "$SOURCEDOCS" ) \
+ | tail -n +2 \
+ | grep -- '^-' \
+ | sed -e 's|^-|Extra output document |';
+
+ } | command logger -s ${LOGGER_OPTS} --;
+}
+
+# - - - - - - - - - - - -
+ produce_ldp_outputs () {
+# - - - - - - - - - - - -
+#
+ local DESTDIR="${1}" && shift
+ local SOURCES="$@"
+ list_source_documents "$SOURCES" | sort_by_stem | while read OBJ; do
+
+ stem=$( printf "%s\n" "$OBJ" | get_stem )
+
+ notice "${stem} checking if rebuild required for $OBJ"
+
+ # -- N.B. there's a dangerous looking ||: at the end of the line
+ # calling the Makefile. This is intentional. The Makefile
+ # may not be able to process the input successfully, but we
+ # would like to continue, if possible, and process the next
+ # available document.
+ #
+ is_output_current "${stem}" "$OBJ" "$DESTDIR" \
+ || (generate_new_content "${stem}" "${OBJ}" "${DESTDIR}" || :)
+
+ done
+}
+
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# main
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+test -d "${DESTDIR}" \
+ || usage "Output directory must already exist, quitting."
+
+produce_ldp_outputs "$DESTDIR" "$SOURCES"
+
+list_orphaned_outputs "$DESTDIR" "$SOURCES"
+
+# -- end of file
diff --git a/LDP/faq/docbook/WordPerfect-Linux-FAQ.sgml b/LDP/faq/docbook/WordPerfect-Linux-FAQ.sgml
index 8f61ae9f..a93d4dce 100644
--- a/LDP/faq/docbook/WordPerfect-Linux-FAQ.sgml
+++ b/LDP/faq/docbook/WordPerfect-Linux-FAQ.sgml
@@ -379,7 +379,7 @@ wrong version of WordPerfect?
You may install it only on two machines at a time, for use by only a single user. You may not reverse-engineer or modify it. You must be in compliance with export laws and not associated with countries the USA considers naughty, like Cuba. You mustn't be on the USA Treasury or Commerce Department's lists of naughty people (drug smugglers, terrorists, export-regs violators, etc.). You mustn't allow use of the program to violate USA law.
- Please note that, unlike WP 8.0 DPE, WP 8.1 is licensed for commercial usage.
+ Please note that, unlike WP 8.0 DPE, WP 8.1 is licensed for commercial usage.The full licence text may be studied here: http://linuxmafia.com/pub/linux/apps/corel-wordperfect-8.1-licence
@@ -542,9 +542,9 @@ Linux?
Sophist Solutions, Inc. LedIt word processor. Small, fast. GTK+-based. Supports RTF. No .wpd support.
- SoftMaker Software GmbH TextMaker for Linux is the initial component of the planned SoftMaker Office Anywhere suite. Fast, light. Full-featured. Supports MS-Word, Pocket Word, RTF, HTML, Unicode. No .wpd support.
+ SoftMaker Software GmbH TextMaker for Linux is the initial component of the planned SoftMaker Office Anywhere suite. Fast, light. Full-featured. Supports MS-Word, Pocket Word, RTF, HTML, Unicode. No .wpd support.
- ThinkFree Corp.'s ThinkFree Office is an integrated word processor, spreadsheet, and presentation graphics application available in Java bytecode. Accordingly, it requires the Sun Java Runtime Environment 1.1.8 or later. Supports MS-Word, HTML, RTF formats. No .wpd support.
+ ThinkFree Corp.'s ThinkFree Office is an integrated word processor, spreadsheet, and presentation graphics application available in Java bytecode. Accordingly, it requires the Sun Java Runtime Environment 1.1.8 or later. Supports MS-Word, HTML, RTF formats. No .wpd support.
@@ -575,7 +575,7 @@ Linux?
Axene, Inc. Xclamation (DTP) and XAllWrite (word processor) programs. Motif / Lesstif-based. GPLed C++ source code available at http://xibios2.free.fr/. Supports its own format, HTML, and ASCII; no .wpd support.
- Scribus. Qt-based destkop publishing program reminiscent of Adobe PageMaker (not a word processor, per se). File format is XML-based. Appears to import unformatted text, only.
+ Scribus. Qt-based destkop publishing program reminiscent of Adobe PageMaker (not a word processor, per se). File format is XML-based. Appears to import unformatted text, only.LyX (slick graphical front-end to LaTeX). Implements ASCII + TeX markup in a quasi-WYSIWYG graphical environment. You write structured documents (discussed below), but the process is made graphical and fairly easy. Produces reliable, high-quality output. Excellent built-in help. Supports LinuxDoc, DocBook, LaTeX, PostScript, DVI, ASCII. XForms or Qt-based, with GTK+ integration pending. No .wpd support.
diff --git a/LDP/guide/docbook/Bash-Beginners-Guide/Bash-Beginners-Guide.xml b/LDP/guide/docbook/Bash-Beginners-Guide/Bash-Beginners-Guide.xml
new file mode 120000
index 00000000..5f1904eb
--- /dev/null
+++ b/LDP/guide/docbook/Bash-Beginners-Guide/Bash-Beginners-Guide.xml
@@ -0,0 +1 @@
+abook.xml
\ No newline at end of file
diff --git a/LDP/guide/docbook/Bash-Beginners-Guide/abook.xml b/LDP/guide/docbook/Bash-Beginners-Guide/abook.xml
index b8786096..3ab0721f 100644
--- a/LDP/guide/docbook/Bash-Beginners-Guide/abook.xml
+++ b/LDP/guide/docbook/Bash-Beginners-Guide/abook.xml
@@ -66,9 +66,9 @@
Why this guide?
-The primary reason for writing this document is that a lot of readers feel the existing HOWTO to be too short and incomplete, while the Bash Scripting guide is too much of a reference work. There is nothing in between these two extremes. I also wrote this guide on the general principal that not enough free basic courses are available, though they should be.
+The primary reason for writing this document is that a lot of readers feel the existing HOWTO to be too short and incomplete, while the Bash Scripting guide is too much of a reference work. There is nothing in between these two extremes. I also wrote this guide on the general principle that not enough free basic courses are available, though they should be.This is a practical guide which, while not always being too serious, tries to give real-life instead of theoretical examples. I partly wrote it because I don't get excited with stripped down and over-simplified examples written by people who know what they are talking about, showing some really cool Bash feature so much out of its context that you cannot ever use it in practical circumstances. You can read that sort of stuff after finishing this book, which contains exercises and examples that will help you survive in the real world.
-From my experience as UNIX/Linux user, system administrator and trainer, I know that people can have years of daily interaction with their systems, without having the slightest knowledge of task automation. Thus they often think that UNIX is not userfriendly, and even worse, they get the impression that it is slow and old-fashioned. This problem is another one that can be remedied by this guide.
+From my experience as UNIX/Linux user, system administrator and trainer, I know that people can have years of daily interaction with their systems, without having the slightest knowledge of task automation. Thus they often think that UNIX is not user-friendly, and even worse, they get the impression that it is slow and old-fashioned. This problem is another one that can be remedied by this guide.
@@ -205,7 +205,6 @@ the maintainer of this document.
Copyright information
- Copyright information
* Copyright (c) 2002-2007, Machtelt Garrels
* All rights reserved.
diff --git a/LDP/guide/docbook/Bugzilla-Guide/Bugzilla-Guide.xml b/LDP/guide/docbook/Bugzilla-Guide/Bugzilla-Guide.xml
index 48622308..c7ebce4e 100644
--- a/LDP/guide/docbook/Bugzilla-Guide/Bugzilla-Guide.xml
+++ b/LDP/guide/docbook/Bugzilla-Guide/Bugzilla-Guide.xml
@@ -1,4 +1,5 @@
-
@@ -139,7 +140,14 @@ try to avoid clutter and feel free to waste space in the code to make it more re
&glossary;
-&index;
+
+
+
diff --git a/LDP/guide/docbook/GNU-Linux-Tools-Summary/GNU-Linux-Tools-Summary.sgml b/LDP/guide/docbook/GNU-Linux-Tools-Summary/GNU-Linux-Tools-Summary.sgml
index 1b893d52..9498abef 100644
--- a/LDP/guide/docbook/GNU-Linux-Tools-Summary/GNU-Linux-Tools-Summary.sgml
+++ b/LDP/guide/docbook/GNU-Linux-Tools-Summary/GNU-Linux-Tools-Summary.sgml
@@ -103,7 +103,7 @@ Updated document with new grammatical review. Re-ordered the entire Text section
20th April 2004GA
-Attempted to fix document according to TLDP criticisms. Added notes and tips more sectioning. Now complying to the open group standards for the UNIX system trademark. Document should be ready for TLDP site.
+Attempted to fix document according to TLDP criticisms. Added notes and tips more sectioning. Now complying to the open group standards for the UNIX system trademark. Document should be ready for TLDP site.
@@ -154,10 +154,9 @@ This is the initial draft release (the first release to be converted from LyX to
enable -a
-
Who would want to read this guide?Anyone who is interested in learning learningabout the tools (also known as commands) available to them when using their GNU/Linux based operating system.Why would you want to learn learnhow to use the command-linecommand-line (and available tools)? The Command Line-Interface (CLI)CLIcommand line-interface, while difficult to learn, is the quickest quickestand most efficient efficientway to use a computer for many different tasks. The CLI CLIis the normal method of use for most UNIXUNIX systemsystem administrators,administrators programmers programmersand some power userspower users. While a GUI GUIis better suited suitedto some tasks, many operations are best suited to the CLI.CLIThe major motivationmotivation behind learning learningthe GNU/Linux CLI CLIis the authors authorsideaidea that, with software softwarein general, the more time spent learning something equals less time spent performing that particular task (authors opinion onlyauthors opinion).This guide is aimed at beginnersbeginners to intermediate intermediateusers who want to learnlearn about the command-line command-linetools available to them. Advanced users may wish to use it as a command reference,reference however this document aims to list listcommands of interest, as judged judgedby the authors opinion,authors opinion it is not designed designedto be completely comprehensive,comprehensive see the appendix,appendix for further information. Or if you are not looking for a command reference referenceguide, but a more gentle introduction to GNU/Linux you may be interested in the Introduction to Linux guideIntroduction to Linux guide authored authoredby Machtelt Garrels.Machtelt GarrelsThis guide could also be considered a summarised summarisedversion of the Linux Cookbook.Linux Cookbook If you are looking for a book bookwith more detailed descriptions of each tool have a look at the Linux Cookbook Homepage, also check out the command list from "Linux in a Nutshell 3rd Edition"command listLinux in a Nutshell 3rd Edition for an index indexof 300+ commands and their explanations.explanationsWho would not want to read this guide?Anyone who is not interested in the command-linecommand-line, or anyone looking for a detailed reference to all available GNU/Linux tools should look elsewhere. This is only a summary,summary while it does list many commands, it's not a completecomplete listing listing(I don't think it's possible to make a complete listing anyway).This document would not be of interest to those who already have an expert expertknowledge knowledgeof the command-line interface command-line interfaceand do require any reference referenceinformation.information Or those readers readerswho require detailed detailedlists listsof options optionsfor each command, the man pagesman pages are better suited suitedto this purpose.purpose
-Availability of sourcesThe modifiable modifiablesources sourcesof the original originalbook book(in english), are availableavailable in LyX LyXformat format(LyX Document Processor) or Machine-translated Machine-translatedSGML SGML(SGML markup languagemarkup language). LyX is a completely free document processor document processorbased on LaTeX,LaTeX downloadabledownloadable from the LyX homepage..See for the modifiable modifiablesources sourcesof this document. These are the official officialversions.versions We (the translators translatorsand current maintainersmaintainers) plan to continue work on this document and add new chapters and enhancements.enhancements If you want to see the version versionwe are currently working on (the "bleeding edge" version), check the GNU/Linux Command-Line Tools Summary HomepageGNU/Linux Tools Summary Homepage from time to time (kindly hosted hostedby Chris KarakasChris Karakas).
+Availability of sourcesThe modifiable modifiablesources sourcesof the original originalbook book(in english), are availableavailable in LyX LyXformat format(LyX Document Processor) or Machine-translated Machine-translatedSGML SGML(SGML markup languagemarkup language). LyX is a completely free document processor document processorbased on LaTeX,LaTeX downloadabledownloadable from the LyX homepage..See for the modifiable modifiablesources sourcesof this document. These are the official officialversions.versions We (the translators translatorsand current maintainersmaintainers) plan to continue work on this document and add new chapters and enhancements.enhancements If you want to see the version versionwe are currently working on (the "bleeding edge" version), check the GNU/Linux Command-Line Tools Summary HomepageGNU/Linux Tools Summary Homepage from time to time (kindly hosted hostedby Chris KarakasChris Karakas).Conventions used in this guideThe following conventions conventionsare used within this guide:italic
italicAnything appearing in italic, like this is either an executable executablecommand or emphasized emphasizedtext. Tools (executable commands) are in italics italicsto prevent confusion. Some tools have names which are real english englishwords, such as the “locate” tool.key combinations
key combinationsAre represented by using a '-' (dash sign)dash sign in-between the key(s), which must be used in combination.combination All combinations combinationsare also printed printedin italics italicsto improve clarity.clarity For example
@@ -207,7 +206,7 @@ This will inform you of something that you shouldn't do (because it probably wil
NoteNote that some tools do not accept options.
-wildcards
+wildcards
wildcardsAlso note that most commands, even when not explicitly explicitlystated, will work with standard wildcards standard wildcards (or globbing patternsglobbing patterns) such as *, [A-Z] and various other standard wildcards. Refer Referto for further information.access keys
access keysAccess keys enable enablenavigation through the document, without relying on a mouse.mouse The following keys have been given special specialmeaning in this document:P
Previous Previouspage.pageN
@@ -235,7 +234,7 @@ to come back. In other browsers such as IE6, the access keys just give focus to
Enter
-. Try it, you'll like it! ]]> ]]> ]]> ]]> Inline graphic
+. Try it, you'll like it! Resources used to create this document To create the GNU/Linux Command-Line Command-LineTools Summary,Summary I used LyX, the document processor.document processor To convert convertthe LyX files to DocBook DocBookSGML SGMLI used the lyxtox Scriptslyxtox created by Chris KarakasChris Karakas.You may also want to check out the db2lyx db2lyx package,package created by Dr. B GuillionDr. B. Guillion, which can be used to convert LyX files to XML XMLDocBook and XML DocBook DocBookback to LyX. I also had assistance assistancefrom various The Linux Documentation ProjectThe Linux Documentation Project volunteers volunteers(see the contributors contributorssection section for specific specificdetails).FeedbackFeedback Feedbackis necessary for the advancement advancementof this guide. Positive,Positive constructive criticism criticismis encouraged.encouraged If you have ideas,ideas suggestions,suggestions advice,advice or problems problemswith this guide, please send sendan email emailto the author authorGareth AndersonGareth Anderson.
@@ -377,7 +376,7 @@ Typing: echo command(s) couldsave you
Using echo allows you to expand the wildcards to understand what will happen before you actually run the command.
-
+
The command-line historyUsing the command history
command historyUse the up and down key's to scroll scrollthrough previously typed commands. Press [Enter] to execute executethem or use the left and right arrow arrowkeys to editedit the command first. Also see history (below).The history command
The history history command can be used to list Bash's log logof the commands you have typed:This log logis called the “history”. To access accessit type:
-man -K keyword
+man -K keyword
man -KSearch the manual manualpages for a string,string as in it will searchsearch all manual manualpages for a particular string within each individual individualman page, it will then prompt promptwhether you would like to view vieweach page it will find. Use double doublequotes “ and ” if there are spaces spacesin the string you are typing.Speed issue Please be warned that this method is going to be really, really slow. You are searching *all* man pages for a string
@@ -631,7 +630,7 @@ This will show you the man page called time in section 2, the equivalent page in
Equivalent to...apropos is the same as doing man -k (lowercase k).
-
+Please note
You need to run makewhatis (as root) so whatis, man -f and apropos will work.
@@ -696,7 +695,7 @@ Using a program with the -?,-?
-Method Two (dollars sign)
+Method Two (dollars sign)Simply type:This will execute “command_2” and it's output will become the input to “command_1”.Using the pipe insteadYou can of course use pipes pipesto do the same thing, if you don't know what a pipe pipeis, please see . For example instead of doing:More than two commands
You can continue to use ';' (semicolon) characters to do more and more commands on the one line.
-
+
Working with the file-systemThe working with the file-system file-systemchapter explains a number numberof commands that you use to move around the file system file systemhierarchy hierarchyand manipulate manipulatethe files. Also explained are finding findingfiles and how to mass-rename mass-renamefiles.Moving around the filesystemcd
cdChange directory. Use “ cd ..” to go up one directory. One dot dot'.' represents representsthe current directory current directorywhile two dots dots'..' representrepresent the parent directory.parent directory“ cd -” will return returnyou to the previous previousdirectory (a bit like an “undo”). You can also use cd absolute path or cd relative path (see below):Absolute paths
@@ -731,7 +730,7 @@ The back-quote key is usually located at the same place as the tilde, above the
Depending on how your aliases (see ) are setup you can also use l, la (list all) and ll (list long) to perform the above commands
-pwd
+pwd
pwdPrint working directoryprint working directory. Print Printthe absolute absolute(complete) path pathto the directory the user is currently in. Command syntax:This will tell you the full path pathto the directory you are in, for example it may output output“/usr/local/bin” if you are currently in that directory.tree
treeOutputs Outputsan ASCII ASCIItext tree/graph graphstarting at a given directory (by default defaultthe current currentdirectory). This command recursively lists listsall files and all directories.directoriesIn other words, it will list files within the directories directoriesbelow the current one, as well as all files in the current directory.tree has a large number of options, refer referto the manual manualpage pagefor details.detailsCommand syntax: then '{}'(curly
You need to run either updatedb (as root) or slocate -u-u(as root) for slocate to work.
-whereis
-whereiswhereis locates locatesthe binary,binary source,source and manual page for a particular program, it uses exact exactmatches only, if you only know part partof the name use slocateslocate.Command syntax:whereis
+whereiswhereis locates locatesthe binary,binary source,source and manual page for a particular program, it uses exact exactmatches only, if you only know part partof the name use slocateslocate.Command syntax:which
whichVirtually the same as whereis,whereis except it only finds findsthe executableexecutable (the physical physicalprogram). It only looks in the PATH PATH(environment variable) of a users shell.shellUse the -a-a option to list all occurances occurancesof the particular program_name program_namein your pathpath (so if theres more than one you can see it).Command syntax:
@@ -793,7 +792,7 @@ You need to run either updatedb (as root) or sloc
On some systems such as Mandrake an alias will send rm to rm -i-i (prompting you for every file you wish to delete). To override this use: \rm -R directory (using the \ disables the alias for this run only)
-rmdir
+rmdir
rmdirRemove an empty emptydirectory. If you want to remove removea directory with files in it type “ rm -R directory”, read above for information informationon rm -RCommand syntax:This will only remove removedirectory if it's empty emptyotherwise it will exit exitwith an error errormessage.mv
mvMove a file or a directory to a new newlocation or rename renamea file/directory.Rename Renameexample: This would move the file "configuration.txt" to /home/joe/ and rename it "backupconfig"
-cp
+cp
cpCopy a file. Has a number numberof useful options, such as -R -R(or -r) which whichrecursively recursivelycopies copiesdirectories and subdirectories.subdirectoriesCommand syntax:Examples:Simply copy file1 file1to file2 file2(in the same directory).dd is used to work on a very low level. It can be used to overwrite important information such as your master-boot record or various important sections of your hard-disk. Please be careful when using it (especially when working with devices instead of files).
-touch
+touch
touchThis command is used to create empty emptyfiles, simply do touch file_name. It is also used to update updatethe timestamps timestampson files.touch can be used to change changethe time and/or date of a file:-tThis particular command and explanation has been used (with editing) from the Linux Online Classroom, see [4] in the for further information.This command would change changethe timestamp timestampon my_report.txt so that it would look looklike you created it at 9:15. The first four digits digitsstand for May 7th (0507), in MM-DD (American style), and the last lastfour (0915) the time,time 9:15 in the morning.morningInstead of using plain plainnumbers to change changethe time, you can use options similar to that of the date tool. For example:You can also use --date= instead of -d-d--date=. Also have a look at the date command under for examples exampleson using -d and --date= (the syntax syntaxfor the date datepart is exactly exactlythe same when using -d or --date).split
@@ -867,13 +866,13 @@ The command dd is used to work on a very low level. It can
Tip:A Java alternative to mmv which runs on both GNU/Linux and Windows is available, Esomaniac
-rename
+rename
renamerename is a perl perlscript which whichcan be used to mass rename mass renamefiles according to a regular expressionregular expression.An example for renaming renamingall “.JPG” files to “.jpg” is:Finding renameYou can get rename from various places. I would recommend trying CPAN Search Site, I found the script here Rename Script Version 1.4
-Bash scripting
+Bash scripting
scriptingBash Bashscripting is one way to rename renamefiles. You can develop developa set setof instructions instructions(a script) to rename renamefiles. Scripts Scriptsare useful if you don't have mmv or rename...One way to this is shown shownbelow:dd is used to work on a very low level. It can
The w command displays the output outputof the uptime command when you run this command. You could use the w command instead of uptime.
-uname
-unameuname is used to print information informationon the system such as OS OStype, kernel versionkernel version et cetera.Some uname options:-a-a --- print all the available availableinformation.-m-m --- print only information related to the machine machineitself. -n-n --- print only the machine hostname. -r-r --- print the release numberrelease number of the current currentkernel.kernel-s-s --- print the operating operatingsystem name -p-p --- print the processor processortype. Command syntax:uname
+unameuname is used to print information informationon the system such as OS OStype, kernel versionkernel version et cetera.Some uname options:-a-a --- print all the available availableinformation.-m-m --- print only information related to the machine machineitself. -n-n --- print only the machine hostname. -r-r --- print the release numberrelease number of the current currentkernel.kernel-s-s --- print the operating operatingsystem name -p-p --- print the processor processortype. Command syntax:xargs
xargsNote that xargs is an advanced,advanced confusing,confusing yet powerful powerfulcommand. xargs is a command used to run other commands as many times timesas necessary, this way it prevents any kind of overload... When you run a command then add a “| xargs xargscommand2command2”. The results resultsof command1 command1will be passed passedto command2, possibly on a line-by-line basis or something similar.command2Understanding xargs tends tendsto be very difficult and my explanation explanationis not the best. Refer Referto the examples examplesbelow or try [6] of the for another xargs tutorial.tutorialAlternatives to using xargs
@@ -942,8 +941,8 @@ The command dd is used to work on a very low level. It can
-Controlling the systemThe controlling controllingthe system chapter details detailscommands that you may wish to use to interact interactwith devices deviceson your system and then details how to controlcontrol processes processesand services/daemons.eject
-ejecteject simply tells tellsa device deviceto open open(eject) the drive. Useful for cdrom/DVD drives.drivesFor example the command below would eject the cdrom-drive cdrom-drive(if your cdromcdrom is linked linkedto /dev/cdrom):Controlling the systemThe controlling controllingthe system chapter details detailscommands that you may wish to use to interact interactwith devices deviceson your system and then details how to controlcontrol processes processesand services/daemons.eject
+ejecteject simply tells tellsa device deviceto open open(eject) the drive. Useful for cdrom/DVD drives.drivesFor example the command below would eject the cdrom-drive cdrom-drive(if your cdromcdrom is linked linkedto /dev/cdrom):This won't work unless
@@ -1030,7 +1029,7 @@ On any system running a newer version of the Linux ke
Shutdown -h vs poweroffOn some systems, shutdown -h and halt do not actually turn the system's power off. On systems that do not power off with these commands use the poweroffpoweroff command
-halt
+halt
haltThe same as shutdown -h now doesn't take any options,options this command simply shuts down immediately.shutdown -r now
shutdown -rShutdown ( -r -r= rebootreboot) the computer immediately. It begins the reboot procedure,procedure press press
@@ -1047,7 +1046,7 @@ On any system running a newer version of the Linux ke
shutdown -r 11:50
-reboot
+reboot
The same as shutdown -r now, doesn't take any options, simply reboots rebootsthe computer immediately. CTRL
@@ -1252,7 +1251,7 @@ You could also change the command it runs for example if you changed the Find style in the diction package
This command is part of the diction package and does not appear to be used too often these days
-cmp
+cmp
cmpDetermines whether or not two files differ, works on any type of file. Very similar to diff only it compares compareson the binary binarylevel instead of just the text.diff
diffCompares two text files and output a difference differencereport (sometimes called a "diff"diff) containing the text that differs between two files. Can be used to create a 'patch' file (which can be used by patch). Example:diff will output outputa '>' (followed by the line) for each line linethat isn't in the first file but is in the second file, and it will output a '<' (followed by the line) for each line that is in the first file but not in the second file.sdiff
@@ -1294,7 +1293,7 @@ You could also change the command it runs for example if you changed the This command is very simple to understand if you make yourself an example
Its much easier if you create an example for yourself. With just a couple of lines, I used "first line first file" and "first line second file" et cetera for a quick example.
-expand
+expand
expandWill convert tabs to spaces spacesand output it. Use the option -t -tnum to specify specifythe size sizeof a “tapstop”, the number of characters charactersbetween each tab.tabCommand syntax:unexpand
unexpandWill convert spaces to tabs tabsand output it.Command syntax:Perl command, read about it at the end of this section.
-nl
+nl
nlThe number lines number linestool, it's default defaultaction is to write writeit's input (either the file names given as an argument,argument or the standard standardinput) to the standard output. Line Linenumbers are added to every line and the text is indented.indentedThis command can do take some more moreadvanced advancednumbering numberingoptions, simply read the info infopage pageon it. These advanced advancedoptions mainly relate to customisation customisationof the numbering,numbering including includingdifferent forms formsof separation separationfor sections/pages/footers etc.Also try cat -ncat-n (number all lines) or cat -b-b (number all non-blank non-blanklines). For more moreinfo infoon cat check checkunder this section:sectionThere are two ways you can use nl:The above command would add addnumbers to each line of some_text_file.some_text_file You could use nl to number the output of something as shown shownin the example below;Perl search and replace text
@@ -1392,7 +1391,7 @@ The “num-utils” homepage,
-
+Network CommandsThe network networkcommands chapter explains explainsvarious tools which can be useful when networking networkingwith other computers computersboth within the network networkand accross the internet,internet obtaining more moreinformation informationabout other computers. This chapter also includes includesinformation on tools for network networkconfiguration, file transfer transferand working with remote machines.remote machinesnetstat
netstatDisplays contents contentsof /proc/net files./proc/net It works with the Linux Network Subsystem,Subsystem it will tell tellyou what the statusstatus of ports portsare ie. open,open closed,closed waiting,waiting masquerade masqueradeconnections. It will also display various other things. It has many different options.optionstcpdump
tcpdumpThis is a sniffer,sniffer a program that captures capturespackets off offa networknetwork interface interfaceand interprets interpretsthem for you. It understands all basic basicinternet Internetprotocols,protocols and can be used to save saveentire packets packetsfor later inspection.inspectionping
@@ -1432,7 +1431,7 @@ Please note that this tool is part of the num-utils package.
This line says that their is a computer called “new”new with IP address 192.168.1.100192.168.1.100. Now that it exists in the /etc/hosts file I don't have to type the IP address anymore, just the name “new”.
-hostname
+hostname
hostnameTells the user the host hostname of the computer they are logged loggedinto. Note: may be called host.hosttraceroute
traceroutetraceroute will show showthe route routeof a packet.packet It attempts attemptsto list listthe series seriesof hosts hoststhrough which whichyour packets packetstraveltravel on their way to a given destination.destination Also have a look at xtraceroute (one of several severalgraphical graphicalequivalents of this program). Command syntax:tracepath
@@ -1469,7 +1468,7 @@ Please note that this tool is part of the num-utils package.
Alternative website downloadersYou may like to try alternatives like httrackhttrack. A full GUI website downloader written in python and available for GNU/Linux
-curl
+curl
curlcurl is another remote remotedownloader.downloader This remote remotedownloader downloaderis designed designedto work without user interaction and supports supportsa variety varietyof protocols,protocols can upload/download and has a large number of tricks/work-arounds for various things. It can access accessdictionary dictionaryservers servers(dict), ldap ldapservers, ftp, http,http gopher,gopher see the manual manualpage for full fulldetails.detailsTo access accessthe full fullmanual (which is huge) for this command type:-MFor general generalusage you can use it like wget. You can also login loginusing a user name by using the -u-u option and typing your username usernameand password like this:To upload uploadusing ftp ftpyou the -T-T option:option
-umask
+umask
The umask umaskis a value valueset setby the shell.shell It controls controlsthe default defaultpermissions of any file created during that shellshell session.session This information is inherited from the shell's parent parentand is normally set in some configuration configurationfile by the root user (in my case /etc/profile/etc/profile).umask has an unusual way of doing things ...to set the umask you must describedescribe file permissions file permissionsby saying what will be disabled.disabledYou can do this by doing 777 minus minusthe file permissions you want. Note that umask works with numbers numbersonly, for an explanation explanation please see, For example:You want the default during a particular shell session defaultto be equivalent equivalentto chmod chmod750 (user has r/w/x, group grouphas r/x and other has no permissions), then the command you would use would be:Some basic Security Toolsmd5sum
md5sumCompute an md5 md5checksum (128-bit) for file “file_name” to verify verifyit's integrity.integrity You normally use the “ md5sum -c” -coption optionto check checkagainst a given file (often with a “.asc” extention) to check checkwhether the various files are correct,correct this comes in handy handywhen downloading downloadingisos as the checking checkingis automated automatedfor you.Command syntax:
-chattr
+chattr
chattrChange file system attributes (works on ext2fs and possibly others...). Use the -R option to change changefiles recursively, chattr has a large number numberof attributes attributeswhich can be set seton a file, read the manualmanual page pagefor further information.Example:This example and tiny parts of the explanation have been taken from the Linux Online Classroom, see [4] in the for further information. This sets setsthe 'immutable' flag flagon a file. Use a '+' to add addattributes attributesand a '-' to take them away. The +i will prevent preventany changes (accidental or otherwise) to the “lilo.conf” file. If you wish to modify modifythe lilo.conf file you will need to unset unsetthe immutableimmutable flag:flag chattr -i.-i Note some flags flagscan only be used by root;root-i, -a and probably probablymany others.Note there are many different differentattributes attributesthat chattr can change,change here are a few more which may be useful:AA (no Access time) --- if a file or directory has this attribute set, whenever it is accessed,accessed either for reading readingof for writing,writing it's last lastaccess timeaccess time will not be updated.updated This can be useful, for example, on files or directories directorieswhich are very often accessed accessedfor reading, especially since this parameter is the only one which changes on an inode inodewhen it's opened.openedaa (append only) --- if a file has this attribute attributeset and is open for writing, the only operation possible will be to append appenddata datato it's previous contents. For a directory, this means that you can only add addfiles to it, but not rename renameor delete any existing existingfile. Only root can set or clear this attribute.ss (secure deletion) --- when such a file or directory with this attributeattribute set is deleted,deleted the blocks blocksit was occupying occupyingon disk diskare written back with zeroes zeroes(similar to using shred). Note that this does work on the ext2,ext2 and ext3 ext3filesystems but is unlikely to work on others (please see the documentation documentationfor the filesystem filesystemyou are using). You may also like to see shredshred, please see lsattr
lsattr(list attributes). This will list listif whether a file has any special specialattributes (as set by chattr). Use the -R option to list recursively recursivelyand try using the -d-d option optionto list directories directorieslike other files rather than listing listingtheir contents.contentsCommand syntax:bzcat, bzless, bzgrep
-convert
+convert
To convert the file format formatof an image to another image format. convert is used to change changea files format,format for example from a jpeg jpegto a bitmap bitmapor one of many other formats.formats convert can also manipulate manipulatethe images as well (see the man manpage pageor the ImageMagickImageMagick site).Example from Jpeg Jpegto PNG PNGformat:import
importCaptures screen-shots screen-shotsfrom the X server serverand saves savesthem to a file. A screen-dump screen-dumpof what X is doing.Command syntax:
-identify
+identify
Will identify identifythe type of image imageas well as it's size,size colour colourdepth and various other information. Use the -verbose -verbose option optionto show showdetailed detailedinformation on the particular particularfile(s). Command syntax:mogrify
mogrifymogrify is another ImageMagick ImageMagickcommand which is used to transform transformimages in a number of different ways, including includingscaling,scaling rotation rotationand various other effects.effects This command can work on a single file or in batch.batchFor example, to convert a large number numberof tiff tifffiles to jpeg jpegfiles you could type:-formatThis would run the shell shellscript 1 hour hourfrom now.atq
atqWill list jobs currently in queue queuefor the user who executed it, if rootroot executes at atit will list listall jobs jobsin queue queuefor the at atdaemon. Doesn't need or take any options.optionsatrm
atrmWill remove removea job jobfrom the 'at' queue.queueCommand syntax:Will delete deletethe job job“job_no” (use atq to find out the number numberof the job)cron
-croncron can be used to schedule schedulea particular particularfunction functionto occur every minute,minute hour,hour day,day week, or month.monthIt's normal normalto use the crontab crontabto perform the editing editingfunctions as this automates automatesthe process processfor the cron crondaemon daemonand makes it easier for normalnormal users to use cron.cron
+]]>Will delete deletethe job job“job_no” (use atq to find out the number numberof the job)cron
+croncron can be used to schedule schedulea particular particularfunction functionto occur every minute,minute hour,hour day,day week, or month.monthIt's normal normalto use the crontab crontabto perform the editing editingfunctions as this automates automatesthe process processfor the cron crondaemon daemonand makes it easier for normalnormal users to use cron.cronAnacronanacron is another tool designed for systems which are not always on, such as home computersWhile cron will not run if the computer is off, anacron will simply run the command when the computer is next on (it catches up with things).
diff --git a/LDP/guide/docbook/GNU-Linux-Tools-Summary/bibliography.sgml b/LDP/guide/docbook/GNU-Linux-Tools-Summary/bibliography.sgml
index 6ff46d07..9892131b 100644
--- a/LDP/guide/docbook/GNU-Linux-Tools-Summary/bibliography.sgml
+++ b/LDP/guide/docbook/GNU-Linux-Tools-Summary/bibliography.sgml
@@ -1,5 +1,5 @@
-
+
@@ -271,6 +271,3 @@ This particular article by Kyle Rankin was used (only a paragraph) for informati
-
-
-
\ No newline at end of file
diff --git a/LDP/guide/docbook/Intro-Linux/Intro-Linux.xml b/LDP/guide/docbook/Intro-Linux/Intro-Linux.xml
new file mode 120000
index 00000000..5f1904eb
--- /dev/null
+++ b/LDP/guide/docbook/Intro-Linux/Intro-Linux.xml
@@ -0,0 +1 @@
+abook.xml
\ No newline at end of file
diff --git a/LDP/guide/docbook/LDP-Author-Guide/LDP-Author-Guide.xml b/LDP/guide/docbook/LDP-Author-Guide/LDP-Author-Guide.xml
index 66587ead..ae69958c 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/LDP-Author-Guide.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/LDP-Author-Guide.xml
@@ -69,9 +69,8 @@
-
-
-
+
+
@@ -159,6 +158,8 @@
MGAdded notes about prefered submission formats,
corrected links, packaged templates.
+
+
4.72005-03-04
@@ -493,8 +494,8 @@
&tools;
-
-&cvs;
+
+&git;
diff --git a/LDP/guide/docbook/LDP-Author-Guide/ag-distribute.xml b/LDP/guide/docbook/LDP-Author-Guide/ag-distribute.xml
index acbfb9f6..39f3492b 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/ag-distribute.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/ag-distribute.xml
@@ -100,14 +100,14 @@
url="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation
License (GFDL), one of the Creative Commons
- Licenses (Share-Alike, or Attribution-Share-Alike), or the LDP license (currently under review). The full text of the license must be included in your document, including the title and version of the license you are using. The LDP will not accept new documents that do not meet licensing requirements.
+ Licenses (such as Attribution-NonCommercial-ShareAlike and Attribution-ShareAlike), or the LDP license (currently under review). The full text of the license must be included in your document, including the title and version of the license you are using. The LDP will not accept new documents that do not meet licensing requirements.
Debian-compatible licenses
- The Debian package maintainer for LDP documents has divided the LDP documents into those with a free license and those with a non-free license. For a summary of this list, please read Debian License Summaries. Currently the Artistic License, BSD License and the GNU General Public License are listed as free. These licenses will also be accepted by the LDP. The definition of non-free has not been made transparent. By choosing another license that has any kind of restriction on redistribution or whether or not the document may be modified, your document may be put into the non-free package instead of the free package. We are working with Debian to clarify how these decisions are made.
+ The Debian package maintainer for LDP documents has divided the LDP documents into those with a free license and those with a non-free license. For a summary of this list, please read Debian License Summaries. Currently the Artistic License, BSD License and the GNU General Public License are listed as free. These licenses will also be accepted by the LDP. The definition of non-free has not been made transparent. By choosing another license that has any kind of restriction on redistribution or whether or not the document may be modified, your document may be put into the non-free package instead of the free package. We are working with Debian to clarify how these decisions are made.
- You can get DocBook markups of both the GNU GPL and the GNU FDL from the GNOME Documentation Project. You can then merely include the license in its entirety in your document. A DocBook-formatted copy of the license is available in .
+ A DocBook-formatted copy of the license is available in .
@@ -222,7 +222,8 @@
not require any additional work. Be prepared to make at least one round
of changes for both the technical and language reviews. Ideally this
exchange will happen in the LDP's CVS to better track each of the
+ url="https://github.com/tLDP/LDP">git repository to better
+ track each of the
changes that are made, and keep track of the most current version of
your document.
@@ -257,16 +258,11 @@
As part of the review process a Review Coordinator will add your
- document to the CVS (including any associated image files) and
+ document to github (including any associated image files) and
notify the submit mailing list that your document is ready for
publication.
-
- If you do not already have a CVS account, please apply for one
- when your document is submitted for publication. You can apply
- for an account contacting LDP CVS master Sergiusz
-
+
Spell Check
diff --git a/LDP/guide/docbook/LDP-Author-Guide/conventions.xml b/LDP/guide/docbook/LDP-Author-Guide/conventions.xml
index ffcbcf63..3361b28f 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/conventions.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/conventions.xml
@@ -11,7 +11,7 @@
This document uses the following conventionsPlease, take a look at the
+ url="https://raw.githubusercontent.com/tLDP/LDP/master/LDP/guide/docbook/LDP-Author-Guide/LDP-Author-Guide.xml">
source to see how to get
similar results on your documents. You should also remember that
the way this appears to you depends on the format in which you are reading
diff --git a/LDP/guide/docbook/LDP-Author-Guide/git.xml b/LDP/guide/docbook/LDP-Author-Guide/git.xml
new file mode 100644
index 00000000..5919a601
--- /dev/null
+++ b/LDP/guide/docbook/LDP-Author-Guide/git.xml
@@ -0,0 +1,101 @@
+
+
+git revision control
+
+
+ Introduction to git
+
+ You can browse the LDP github repository via the web at https://github.com/tLDP/.
+
+
+
+ Using git offers many advantages over other version control systems,
+ but between git and github there's a few features that make it well
+ suited for a distributed and diverse set of contributors:
+
+
+ Each user can have their own independent and up-to-date copy of the repository and modify it.
+ Submitters do not need to have write access to the main repository to submit updates
+ Using github relieves TLDP staff of managing account requests
+ Ability to import changelogs from other VCS, so you can track changes going back about 16 years or more
+
+ These advantages come a bit a bit of a price in terms of increased complexity. There's a lot to git, but we'll cover enough here to manage documents in LDP.
+ You can get an account on github by going to their website and signing up for a free
+ account. For ease of use, you may want to use SSH keys to
+ authenticate with github otherwise you will be asked to enter your
+ password with each update.
+
+
+
+ If for some reason you are unwilling to create a github account, we will do our best to accomodate you. You can use
+ git clone https://github.com/tLDP/LDP.git to make a copy of the repository locally on your system.
+ Make your proposed changes and then you can use git diff > myhowto.patch to generate the differences
+ between the original and your updates. Send an e-mail to discuss@en.tldp.org that you have updates you'd
+ like to submit outside github and a volunteer will help you out.
+
+
+
+
+
+
+ Setting up git on your local Linux system
+
+ Many different systems run git, but this document will focus on doing as many functions from the Linux command line as possible
+ You will need to make sure that git is installed on your system. It isn't always installed by default so you may need to add it using your package manager such as yum or apt-get
+
+
+
+
+ First time git setup
+ The first time you start using github you'll need to run some
+ commands
+
+ Clone the entire repository (about 400 MB) with: git clone https://github.com/tLDP/LDP
+
+
+ Go to the LDP repository on github and click on . This will create your own copy of TLDP in your space that you can write to.
+
+ Lastly, link your local repository with your repository on github with git remote add upstream git@github.com/MyGithubID/LDP.git
+
+
+
+
+
+ Submitting changes to TLDP
+ Each time you make changes to TLDP you'll need to go through this
+ process. It'll make sure that your changes are submitted for review and
+ if approved, automatically added into TLDP
+
+ Create a new branch using git checkout -b MyNewBranch
+ Start making your changes, either editing files, or creating new ones. You can use git diff to see changes between what you have locally and what the last checked in repository is.
+ If you added new files, you will need to use git add filename to indicate that there are new files for git to manage.
+ Now you commit the changes locally using git commit. This creates a new revision and drops you into an editor to add a comment for the changes you've made. You can include the -m option and a string to do this at the command line.
+ Now you need to push your changes into your forked repository on github with git push -u upstream MyNewBranch
+ From the github website, you will need to create a push request using your branch.
+
+ Once the push request is accepted, you can remove the branch using git branch -D MyNewBranch
+
+
+
diff --git a/LDP/guide/docbook/LDP-Author-Guide/glossary.xml b/LDP/guide/docbook/LDP-Author-Guide/glossary.xml
index efdec5a4..38e590fd 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/glossary.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/glossary.xml
@@ -186,6 +186,13 @@
+
+ git
+
+ Git is a widely-used source code management system for software development. It is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows. (Source: Wikipedia)
+
+
+
GNU Free Documentation License
(GFDL)
diff --git a/LDP/guide/docbook/LDP-Author-Guide/templates.xml b/LDP/guide/docbook/LDP-Author-Guide/templates.xml
index 6582570c..6a40862a 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/templates.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/templates.xml
@@ -95,7 +95,7 @@
The GFDL (GNU Free Documentation License) is available in XML format
at http://www.gnu.org/licenses/fdl.xml. For a version in appendix format suitable for including
in your document, you can see get the XML for this document
- from CVS at http://cvsview.tldp.org/index.cgi/LDP/guide/docbook/LDP-Author-Guide/fdl-appendix.xml.
+ from GitHub at https://raw.githubusercontent.com/tLDP/LDP/master/LDP/guide/docbook/LDP-Author-Guide/fdl-appendix.xml.
TLDP template files for DocBook (XML and SGML) and Linuxdoc SGML are
diff --git a/LDP/guide/docbook/LDP-Author-Guide/tools-text-editors.xml b/LDP/guide/docbook/LDP-Author-Guide/tools-text-editors.xml
index 50733498..6cb5c46e 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/tools-text-editors.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/tools-text-editors.xml
@@ -23,84 +23,6 @@
&configure-emacs;
-
-epcEdit
- epcEdit
-
- Editors
- epcEdit
-
-
-
- http://www.tksgml.de
-
-
-
- The epcEdit program allows you to edit XML files.
- It has the advantages of not needing to know Emacs or
- vi before starting, and is cross-platform, working in both
- Windows and Linux. This is a commercial application, and
- pricing can be found at
-
- http://www.tksgml.de/pricing.html
-
-
-
- Along with visual editing, epcEdit will also validate
- documents on loading, and on demand by using the DocumentValidate
- command.
-
-
-
-
-
-
-
-Morphon XML editor
-
-
- http://www.morphon.com/xmleditor/index.shtml
-
-
- This is a commercial application which is currently
- available for free (with an optional user registration).
- It is written in Java, allowing it to run on any platform
- that has a Java Virtual Machine (that is, works in both
- Windows and Linux).
-
-
- On the plus sides of XMLEditor is the left side of the
- screen shows the hierarchy of the document (starting with Book
- and so on). Selecting an item in the list brings you to that
- part of the document so you can edit it. The right part of the
- screen shows the text without any markup or tags being shown.
- If you have external files as ELEMENTS (as the LDP Author Guide
- does), XMLEditor will follow the links and load the files, so
- you always work on the entire work. On the minus side of this,
- you will get errors if a file is missing.
-
-
-
neditnedit
@@ -109,16 +31,16 @@
nedit
-
- http://nedit.org
+
+ http://sourceforge.net/projects/nedit/
To be fair, nedit is more
for programmers, so it might seem a bit of overkill for new
users and especially non-programmers. All that aside, it's
- extremely powerful, allowing for syntax highlighting. Unlike
- epcEdit, nedit doesn't allow you to automatically insert tags
+ extremely powerful, allowing for syntax highlighting.
+ nedit doesn't allow you to automatically insert tags
or automatically validate your code. However, it does allow
for shell commands to be run against the contents of the
window (as opposed to saving the file, then checking).
diff --git a/LDP/guide/docbook/LDP-Author-Guide/validate-why.xml b/LDP/guide/docbook/LDP-Author-Guide/validate-why.xml
index 436beb84..72a4024c 100644
--- a/LDP/guide/docbook/LDP-Author-Guide/validate-why.xml
+++ b/LDP/guide/docbook/LDP-Author-Guide/validate-why.xml
@@ -6,8 +6,9 @@
The LDP uses a number of scripts to distribute your document.
- These scripts submit your document to the LDP's CVS (a free
- document version management system), and then they transform your document to other formats that
+ These scripts retrieve your document from the LDP's document
+ version management system (currently git using GitHub), and
+ then they transform your document to other formats that
users then read. Your document will also be mirrored on a number
of sites worldwide (yet another set of scripts).
diff --git a/LDP/guide/docbook/LFS/LFS.xml b/LDP/guide/docbook/LFS/LFS.xml
new file mode 120000
index 00000000..114e3360
--- /dev/null
+++ b/LDP/guide/docbook/LFS/LFS.xml
@@ -0,0 +1 @@
+index.xml
\ No newline at end of file
diff --git a/LDP/guide/docbook/Linux-Dictionary/Linux-Dictionary.xml b/LDP/guide/docbook/Linux-Dictionary/Linux-Dictionary.xml
index fc7c8384..62dad200 100644
--- a/LDP/guide/docbook/Linux-Dictionary/Linux-Dictionary.xml
+++ b/LDP/guide/docbook/Linux-Dictionary/Linux-Dictionary.xml
@@ -146,7 +146,7 @@ editors, search engine optimizers, and quality control
managers-who work together to give you a cohesive web-based product.
Designerz, is one provider for all your needs. Our integrated approach to your project saves you money and time. We strive for your satisfaction with the process as well as the product.
We rate our work on the quality, not the quantity, of projects we develop. Team members receive quality-based assessments by customers and company management.
-We monitor every team member’s role in developing a project to assure that our clients' needs are completely met.
+We monitor every team member's role in developing a project to assure that our clients' needs are completely met.
diff --git a/LDP/guide/docbook/Linux-Filesystem-Hierarchy/etc.xml b/LDP/guide/docbook/Linux-Filesystem-Hierarchy/etc.xml
index ae6deb61..24f4bfe8 100644
--- a/LDP/guide/docbook/Linux-Filesystem-Hierarchy/etc.xml
+++ b/LDP/guide/docbook/Linux-Filesystem-Hierarchy/etc.xml
@@ -2209,14 +2209,14 @@ dummy:x:1001:1001:,,,:/home/dummy:/bin/bash
/etc/opt : Configuration files for /opt
Host-specific configuration files for add-on application software packages
- must be installed within the directory /etc/opt/&60;subdir&62;, where
- &60;subdir&62; is the name of the subtree in /opt where the static data
+ must be installed within the directory /etc/opt/<subdir>, where
+ <subdir> is the name of the subtree in /opt where the static data
from that package is stored.
- No structure is imposed on the internal arrangement of /etc/opt/&60;subdir&62;.
+ No structure is imposed on the internal arrangement of /etc/opt/<subdir>.
If a configuration file must reside in a different location in order for the
package or system to function properly, it may be placed in a location other
- than /etc/opt/&60;subdir&62;.
+ than /etc/opt/<subdir>.
The rationale behind this subtree is best explained by refering to the
rationale for /opt.
diff --git a/LDP/guide/docbook/Linux-Networking/Linux-Networking.xml b/LDP/guide/docbook/Linux-Networking/Linux-Networking.xml
index 298dc099..8df776cf 100644
--- a/LDP/guide/docbook/Linux-Networking/Linux-Networking.xml
+++ b/LDP/guide/docbook/Linux-Networking/Linux-Networking.xml
@@ -54,7 +54,7 @@ towards security is made. It was only intended to provide an overview of this su
provide a means by which to extend one's knowledge of networking under Linux and other
well established documents. For issues related to networking under Linux that are outside
the scope of this document please consult the Linux Documentation Project,
-http://www.tldp.org.
+http://www.tldp.org.
diff --git a/LDP/guide/docbook/Linux-Networking/Overview.xml b/LDP/guide/docbook/Linux-Networking/Overview.xml
index 3c8ca527..148ddbfe 100644
--- a/LDP/guide/docbook/Linux-Networking/Overview.xml
+++ b/LDP/guide/docbook/Linux-Networking/Overview.xml
@@ -1,3 +1,4 @@
+
Overview
@@ -31,7 +32,7 @@ support under Linux.
-Orest Zborowski produced the original BSD socket
+Orest Zborowski obz@Kodak.com produced the original BSD socket
programming interface for the Linux kernel. This was a big step
forward as it allowed many of the existing network applications to be
ported to linux without serious modification.
@@ -99,8 +100,7 @@ Linux Networking HOWTO, http://tldp.org/HOWTO/NET3-4-HOWTO.html
-
-
+
- · Ethernet HOWTO
6.9. Authentication
There are also various ways of authenticating users in mixed networks.
- · For Linux/Windows NT:http://www.mindware.com.au/ftp/smb-NT-
+ · For Linux/Windows NT:http://www.mindware.com.au/ftp/smb-NT-
verify.1.1.tar.gz
- · The PAM (pluggable authentication module) which is a flexible
+ · The PAM (pluggable authentication module) which is a flexible
method of Unix authentication: PAM library
.
- · Finally, LDAP in Linux
+ · Finally, LDAP in Linux
7. Remote execution of applications
@@ -2179,19 +2179,19 @@ In network terminology the word "point" is usually synonymous with "device".
capabilities:
- · Linux is a true 32-bit multitasking operating system, robust and
+ · Linux is a true 32-bit multitasking operating system, robust and
capable enough to be used in organizations ranging from
universities to large corporations.
- · It runs on hardware ranging from low-end 386 boxes to massive
+ · It runs on hardware ranging from low-end 386 boxes to massive
ultra-parallel machines in research centres.
- · Out-of-the-box versions are available for Intel, Sparc, and Alpha
+ · Out-of-the-box versions are available for Intel, Sparc, and Alpha
architectures, and experimental support exists for Power PC and
embedded systems, among others such as SGI, Ultra Sparc, AP1000+,
Strong ARM, and MIPS R3000/R4000.
- · Finally, when it comes to networking, Linux is choice. Not only
+ · Finally, when it comes to networking, Linux is choice. Not only
because networking is tightly integrated with the OS itself and a
plethora of applications is freely available, but for the
robustness under heavy loads that can only be achieved after years
@@ -2286,8 +2286,9 @@ the sections below.
drivers with protocol support.
- · WAN resources for Linux:
+ · WAN resources for Linux:
http://www.secretagent.com/networking/wan.html
+]]>
>Start Binh
@@ -2496,4 +2497,4 @@ services offered by Linux include mail, news, WWW servers and many
more that will be outlined further on in this document.
-
+
diff --git a/LDP/guide/docbook/Linux-Networking/Protocols-Standards-Services.xml b/LDP/guide/docbook/Linux-Networking/Protocols-Standards-Services.xml
index d016c4ac..31c625c0 100644
--- a/LDP/guide/docbook/Linux-Networking/Protocols-Standards-Services.xml
+++ b/LDP/guide/docbook/Linux-Networking/Protocols-Standards-Services.xml
@@ -1,8 +1,10 @@
+
Protocols-and-Standards-Services
+
-
-
+
+
-
+ · Amateur radio on Linux web site
+]]>
+
NDIS and ODI
@@ -101,7 +105,7 @@ as another Macintosh on the network.
- http://www.umich.edu/~rsug/netatalk/
- http://www.umich.edu/~rsug/netatalk/faq.html
-
+
@@ -126,7 +130,7 @@ TCNS) support speeds of 20 Mbps and 100 Mbps, but have not really caught on.
- ARCnet HOWTO
-
+
@@ -149,17 +153,17 @@ SVCs), IP over ATM, LAN emulation....
-The Linux ATM-Linux home page is at,
+The Linux ATM-Linux home page is at, .
-Werner Almesberger is managing a
+Werner Almesberger werner.almesberger@lrc.di.epfl.ch is managing a
project to provide Asynchronous Transfer Mode support for Linux.
Current information on the status of the project may be obtained from,
http://lrcwww.epfl.ch
-
+
@@ -181,7 +185,7 @@ on demand rather than continuously, and you are billed for the hours that
you use it. ISDN has largely replaced Switched 56 for this purpose.
-
+
@@ -192,7 +196,7 @@ Support for DECnet is currently being worked on. You should expect it
to appear in a late 2.1.* kernel.
-
+
@@ -208,7 +212,7 @@ used by many network-aware printers such Hewlett-Packard's JetDirect
interface.
-
+
@@ -221,7 +225,7 @@ it is cheaper to use multiple lower speed lines than to have one high
speed line installed. In short, EQL is multiple line traffic equaliser.
-
+
@@ -267,7 +271,7 @@ It is now often utilized as a more inexpensive option to Optic Fibre.
* Ethernet-Howto
-
+
@@ -297,7 +301,7 @@ disadvantage of FDDI is its high cost and the difficult in installing and
maintaing fiber optic cable.
-
+
@@ -327,7 +331,7 @@ network using a Frame Relay Access Device (FRAD). The Linux Frame Relay
supports IP over Frame Relay as described in RFC-1490.
-
+
@@ -354,7 +358,7 @@ for some operating systems (such as Windows for Workgroups and Windows 95),
Microsoft recommends TCP/IP over NetBEUI for most Windows NT networks.
-
+
@@ -394,21 +398,21 @@ in the packet. Typical frame types used in NetWare networks
Linux has a very clean IPX/SPX implementation, allowing it to be
configured as an:
- · IPX router
- · IPX bridge
- · NCP client and/or NCP Server (for sharing files)
- · Novell Print Client, Novell Print Server
+ · IPX router
+ · IPX bridge
+ · NCP client and/or NCP Server (for sharing files)
+ · Novell Print Client, Novell Print Server
And to:
- · Enable PPP/IPX, allowing a Linux box to act as a PPP server/client
- · Perform IPX tunnelling through IP, allowing the connection of two
+ · Enable PPP/IPX, allowing a Linux box to act as a PPP server/client
+ · Perform IPX tunnelling through IP, allowing the connection of two
IPX networks through an IP only link
* IPX-SPX HOWTO
-
+
@@ -457,7 +461,7 @@ OC-12 level would equate to a data transfer rate of 622 Mbps. OC-1 and
OC-3 are the most commonly used SONET lines.
-
+
@@ -488,7 +492,7 @@ It uses a parallel port and a special cable, achieving speeds of
- PLIP HOWTO
- Networking HOWTO
-
+
@@ -500,12 +504,12 @@ Protocol) and SLIP (Serial Line IP). PPP is the most popular
way individual users access their ISPs (Internet Service
Providers).
-· Linux PPP HOWTO
+· Linux PPP HOWTO
-· PPP/SLIP emulator
+· PPP/SLIP emulator
+
-
+
@@ -551,7 +555,7 @@ problem. This makes Token Ring a reliable choice for networking.
- Token-Ring HOWTO
-
+
@@ -585,7 +589,7 @@ provides error control and accouting for users of the network.
- X25 HOWTO
-
+
@@ -593,6 +597,7 @@ provides error control and accouting for users of the network.
+
+
-
+
@@ -726,6 +733,7 @@ kernel compilation options are given below.
+
@@ -733,10 +741,11 @@ kernel compilation options are given below.
....
[*] Radio network interfaces
< > STRIP (Metricom starmode radio IP)
+]]>
-
+
@@ -754,9 +763,11 @@ You can get information on the Wavelan card from wavelan.com.
Wavelan device names are `eth0', `eth1', etc.
+
+
@@ -765,10 +776,11 @@ Wavelan device names are `eth0', `eth1', etc.
[*] Radio network interfaces
....
<*> WaveLAN support
+]]>
-
+
@@ -822,11 +834,12 @@ commands). The possibilities range from simply using a terminal
program to connections via HDLC (using included devices) to full
connection to the Internet with PPP to audio applications.
-· FAQ for isdn4linux: http://ww.isdn4linux.de/faq/
+· FAQ for isdn4linux: http://ww.isdn4linux.de/faq/
+
@@ -836,6 +849,7 @@ connection to the Internet with PPP to audio applications.
< > ICN 2B and 4B support
< > PCBIT-D support
< > Teles/NICCY1016PC/Creatix support
+]]>
@@ -845,9 +859,9 @@ of internal ISDN cards. These are those listed in the kernel
configuration options:
- · ICN 2B and 4B
- · Octal PCBIT-D
- · Teles ISDN-cards and compatibles
+ · ICN 2B and 4B
+ · Octal PCBIT-D
+ · Teles ISDN-cards and compatibles
Some of these cards require software to be downloaded to them to make
@@ -870,7 +884,7 @@ modified version. Details of where to find it are available in the
documentation referred to above.
-
+
@@ -886,7 +900,7 @@ password entry existing on each machine; only the main database needs
to be maintained.
-
+
@@ -895,7 +909,7 @@ to be maintained.
-
+
@@ -916,7 +930,7 @@ lacking transaction support (due to speed concerns), a future version of MySQL w
* Sybase Adaptive Server Anywhere for Linux HOWTO
-
+
@@ -950,7 +964,7 @@ especially in large networks or networks which have lots of mobile users.
Resources section at the end of the document). You can also read
[32]http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html.
-
+
@@ -958,7 +972,7 @@ especially in large networks or networks which have lots of mobile users.
Setting Up Your New Domain Mini-HOWTO.
-
+
@@ -993,7 +1007,7 @@ some are text-based.
* FTP HOWTO
-
+
@@ -1006,7 +1020,7 @@ create LDAP databases, how to add, how to update and how to delete
information on the directory. This paper is mostly based on the University of
Michigan LDAP information pages and on the OpenLDAP Administrator's Guide.
-
+
@@ -1079,16 +1093,16 @@ Start the automounter. From now on, whenever you try to access the inexistent mo
NFS-related documents:
- · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root.html
+ · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root.html
- · http://metalab.unc.edu/mdw/HOWTO/Diskless-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/Diskless-HOWTO.html
- · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root-Client-mini-
+ · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root-Client-mini-
HOWTO/index.html
- · http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html
+ · http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html
- · http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
CODA can be found at: http://www.coda.cs.cmu.edu/
@@ -1114,16 +1128,16 @@ Start the automounter. From now on, whenever you try to access the inexistent mo
NFS-related documents:
- · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root.html
+ · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root.html
- · http://metalab.unc.edu/mdw/HOWTO/Diskless-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/Diskless-HOWTO.html
- · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root-Client-mini-
+ · http://metalab.unc.edu/mdw/HOWTO/mini/NFS-Root-Client-mini-
HOWTO/index.html
- · http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html
+ · http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html
- · http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html
CODA can be found at: http://www.coda.cs.cmu.edu/
@@ -1197,7 +1211,7 @@ http://www.nfsv4.org). The advantage of NFS today is that it is mature,
standard, well understood, and supported robustly across a variety of
platforms.
-
+
@@ -1227,12 +1241,11 @@ platforms.
that Samba is the only SMB server available which will scale to many tens of thousands
of users without crashing"
- · Samba project home page
+ · Samba project home page
- · SMB HOWTO
+ · SMB HOWTO
- · Printing HOWTO
+ · Printing HOWTO
@@ -1274,7 +1287,7 @@ Samba adds Windows-networking support to UNIX. Whereas NFS is the most popular p
Ricardo Alexandre Mattar
v1.2, 2004-05-21
-
+
@@ -1315,12 +1328,11 @@ Java and Embedded OSes used in routers.
Encrypted remote shell sessions are available through SSH
- (http://www.ssh.fi/sshprotocols2/index.html
- ) thus effectively
-allowing secure remote administration.
+ ()
+thus effectively allowing secure remote administration.
-
+
@@ -1352,11 +1364,11 @@ Please consult RFC 854 for further details behind its implementation.
- · Telnet related software
-
+ ·
+ Telnet related software
-
+
@@ -1449,7 +1461,7 @@ to test the server. At the tftp prompt, you can issue the commands put and
get.
-
+
@@ -1486,24 +1498,24 @@ get.
open standards which have been carefully examined and tested.
- · A client implementation of the PPTP for Linux is available here
-
+ · A client implementation of the PPTP for Linux is available here
+
- · More on Linux PPTP can be found here
-
+ · More on Linux PPTP can be found here
+
Mobile IP:
- · http://www.hpl.hp.com/personal/Jean_Tourrilhes/MobileIP/mip.html
+ ·
- · http://metalab.unc.edu/mdw/HOWTO/NET3-4-HOWTO-6.html#ss6.12
+ ·
Virtual Private Networks related documents:
- · http://metalab.unc.edu/mdw/HOWTO/mini/VPN.html
+ ·
- · http://sites.inka.de/sites/bigred/devel/cipe.html
+ ·
7.4. VNC
@@ -1523,7 +1535,7 @@ get.
allowing 386s with as little as 4 MB of RAM to become fully functional
X-Terminals.
- · VNC web site
+ · VNC web site
Virtual Network Computing (VNC) allows a user to operate a session running on another machine.
@@ -1569,14 +1581,14 @@ vncviewer [host]:[screen-number]
10.1. Web Sites
- Cipe Home Page
+ Cipe Home Page
- Masq Home Page
+ Masq Home Page
- Samba Home Page
+ Samba Home Page
- Linux HQ ---great site for lots of linux
- info
+ Linux HQ
+ ---great site for lots of linux info
10.2. Documentation
@@ -1588,7 +1600,7 @@ vncviewer [host]:[screen-number]
IPChains-Howto, by Paul Russell, Paul.Russell@rustcorp.com.au
-
+
@@ -1616,7 +1628,7 @@ will reveal a multitude of servers.
-Most Linux distributions include Apache .
+Most Linux distributions include Apache .
Apache is the number one server on the internet according to
http://www.netcraft.co.uk/survey/ . More than a half of all internet
sites are running Apache or one of it derivatives. Apache's advantages
@@ -1631,9 +1643,9 @@ Optional support for SSL (which enables secure transactions) is also
available at:
- · http://www.apache-ssl.org/
- · http://raven.covalent.net/
- · http://www.c2.net/
+ · http://www.apache-ssl.org/
+ · http://raven.covalent.net/
+ · http://www.c2.net/
Dynamic Web content generation
@@ -1659,13 +1671,12 @@ those in the Database serving section and most ODBC compliant
databases. The language itself borrows its structure from Perl and C.
- · http://metalab.unc.edu/mdw/HOWTO/WWW-HOWTO.html
- · http://metalab.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html
- · http://metalab.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html
- · Web servers for Linux
-
+ · http://metalab.unc.edu/mdw/HOWTO/WWW-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html
+ · http://metalab.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html
+ · Web servers for Linux
-
+
@@ -1699,9 +1710,9 @@ is to act as pure X servers. Such systems are called X terminals.
A free port of the X Window System exists for Linux and can be found
-at: Xfree . It is included in most Linux
+at: Xfree . It is included in most Linux
distributions.
-
+
For further information regarding X please see:
@@ -1711,23 +1722,23 @@ X11, LBX, DXPC, NXServer, SSH, MAS
Related HOWTOs:
-· Remote X Apps HOWTO
-· Linux XDMCP HOWTO
-· XDM and X Terminal mini-HOWTO
-· The Linux XFree86 HOWTO
-· ATI R200 + XFree86 4.x mini-HOWTO
-· Second Mouse in X mini-HOWTO
-· Linux Touch Screen HOWTO
-· XFree86 Video Timings HOWTO
-· Linux XFree-to-Xinside mini-HOWTO
-· XFree Local Multi-User HOWTO
-· Using Xinerama to MultiHead XFree86 V. 4.0+
-· Connecting X Terminals to Linux Mini-HOWTO
-· How to change the title of an xterm
-· X Window System Architecture Overview HOWTO
-· The X Window User HOWTO
+· Remote X Apps HOWTO
+· Linux XDMCP HOWTO
+· XDM and X Terminal mini-HOWTO
+· The Linux XFree86 HOWTO
+· ATI R200 + XFree86 4.x mini-HOWTO
+· Second Mouse in X mini-HOWTO
+· Linux Touch Screen HOWTO
+· XFree86 Video Timings HOWTO
+· Linux XFree-to-Xinside mini-HOWTO
+· XFree Local Multi-User HOWTO
+· Using Xinerama to MultiHead XFree86 V. 4.0+
+· Connecting X Terminals to Linux Mini-HOWTO
+· How to change the title of an xterm
+· X Window System Architecture Overview HOWTO
+· The X Window User HOWTO
-
+
@@ -1745,7 +1756,7 @@ In times gone by, users would Telnet into the SMTP server itself and use a comma
* The Linux Mail User HOWTO
-
+
@@ -1766,9 +1777,9 @@ In times gone by, users would Telnet into the SMTP server itself and use a comma
Several proxy servers exist for Linux. One popular solution is the
Apache proxy module. A more complete and robust implementation of an
HTTP proxy is SQUID.
- · Apache
+ · Apache
- · Squid
+ · SquidProxy-Caching
@@ -1783,7 +1794,7 @@ Traffic Control HOWTO
ProxyARP Subnetting HOWTO
-
+
@@ -2041,7 +2052,7 @@ You can also use the TZ environment variable to change the current
time zone, which is handy of you're logged in remotely to a machine in
another time zone. Also see the man pages for tzset and tzfile.
This is nicely summarized at
-
+
2.5. The Bottom Line
@@ -2086,7 +2097,7 @@ Xntpd (NTPv3) has been replaced by ntpd (NTPv4); the earlier version
is no longer being maintained.
-
+
Ntpd is the standard program for synchronizing clocks across a
network, and it comes with a list of public time servers you can
connect to. It can be a little more complicated to set up, but if
@@ -2096,11 +2107,11 @@ take a look at it.
The "home base" for information on ntpd is the NTP website at
- which also includes links to all
+ which also includes links to all
kinds of interesting time-related stuff (including software for other
OS's). Some linux distributions include ntpd on the CD. There is a
list of public time servers at
-.
+.
@@ -2117,13 +2128,13 @@ are some cheaper alternatives (discussed in later sections). In the
past most were WWV or WWVB receivers, but now most of them seem to be
GPS receivers. NIST has a PDF file that lists manufacturers of radio
clocks on their website at
- (near the bottom of
+ (near the bottom of
the page). The NTP website also includes many links to manufacturers
-of radio clocks at and
-. Either list may
+of radio clocks at and
+. Either list may
or may not be up to date at any given time :-). The list of drivers
for ntpd is at
-.
+.
@@ -2148,7 +2159,7 @@ turned off for long periods of time.
You can get more information from Richard Curnow's website at
- or .
+ or .
There are also two chrony mailing lists, one for announcements and one
for discussion by users. For information send email to chrony-users-
subscribe@egroups.com or chrony-announce-subscribe@egroups.com
@@ -2171,7 +2182,7 @@ machines on a LAN.
I've sometimes had trouble reaching his website at
-, so if you get a DNS error try again
+, so if you get a DNS error try again
on another day. I'll try to update this section if I get some better
information.
@@ -2197,10 +2208,10 @@ Time.
If you run a dual-boot system that spends a lot of time running
Windows, you may want to check out some of the clock software
available for that OS instead. Follow the links on the NTP website at
-.
+.
-
+
@@ -2224,29 +2235,29 @@ dropping. This HOWTO provides an introduction and overview of the
capabilities and implementation of traffic control under Linux.
- * the linux DiffServ project
+Â Â *Â the linux DiffServ project
- * HTB site (Martin "devik" Devera)
+Â Â *Â HTB site (Martin "devik" Devera)
- * Traffic Control Next Generation (tcng)
+Â Â *Â Traffic Control Next Generation (tcng)
TCNG manual (Werner Almesberger)
- * iproute2 (Alexey Kuznetsov)
+Â Â *Â iproute2 (Alexey Kuznetsov)
iproute2 manual (Alexey Kuznetsov)
- * Research and documentation on traffic control under linux (Stef Coene)
+Â Â *Â Research and documentation on traffic control under linux (Stef Coene)
- * LARTC HOWTO (bert hubert, et. al.)
+Â Â *Â LARTC HOWTO (bert hubert, et. al.)
- * guide to IP networking with linux (Martin A. Brown)
+Â Â *Â guide to IP networking with linux (Martin A. Brown)
- * http://metalab.unc.edu/mdw/HOWTO/NET3-4-HOWTO-6.html#ss6.15
+ *
* Traffic Control HOWTO
-
+
@@ -2267,11 +2278,10 @@ appearance that only one server exists.
-Linux IP-NAT information may be found here
+Linux IP-NAT information may be found here
-
+
@@ -2335,7 +2345,7 @@ Indonesian translation of this HOWTO by Rahmat Rafiudin mjl_id@yahoo.com
[http://raf.unisba.ac.id/resources/BandwidthLimitingHOWTO/index.html] http://
raf.unisba.ac.id/resources/BandwidthLimitingHOWTO/index.html
-
+
@@ -2470,7 +2480,7 @@ you'll now need to use ipchains instead of ipfwadm to configure your
filters. (From Documentation/Changes in the latest kernel sources).
-
+
@@ -2498,7 +2508,7 @@ World Wide Web and ftp offerings for their customers. You can refer to
the ``IP-Alias mini-HOWTO'' for more information than you find here.
-
+
@@ -2506,8 +2516,9 @@ the ``IP-Alias mini-HOWTO'' for more information than you find here.
* Multicast HOWTO
+
-
+
@@ -2520,15 +2531,15 @@ projects are linuxconf and webmin:
-· Webmin
-· Linuxconf
+· Webmin
+· Linuxconf
Other tools include network traffic analysis tools, network security
tools, monitoring tools, configuration tools, etc. An archive of many
of these tools may be found at Metalab
-
+
9.2. SNMP
@@ -2550,9 +2561,10 @@ infrastructure to have proper mechanisms to guarantee network
availability nearly 100% of the time. Some related techniques are
described in the following sections. Most of the following material
can be found at the excellent Linas website:
-http://linas.org/linux/index.html and in the Linux High-Availability
-HOWTO
+http://linas.org/linux/index.html and in the
+Linux High-Availability
+HOWTO
+
10.1. High Availability
@@ -2568,7 +2580,7 @@ steps to restore normal operation and to notifying system
administrators.
-
+
@@ -2588,4 +2600,4 @@ http://metalab.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-
HOWTO.html
-
+
diff --git a/LDP/guide/docbook/Package-Management-Basics/Package-Management-Basics.xml b/LDP/guide/docbook/Package-Management-Basics/Package-Management-Basics.xml
new file mode 120000
index 00000000..3275991f
--- /dev/null
+++ b/LDP/guide/docbook/Package-Management-Basics/Package-Management-Basics.xml
@@ -0,0 +1 @@
+Package Management Basics.xml
\ No newline at end of file
diff --git a/LDP/guide/docbook/Tuning-Linux/Tuning-Linux.sgml b/LDP/guide/docbook/Tuning-Linux/Tuning-Linux.sgml
new file mode 120000
index 00000000..d04b2049
--- /dev/null
+++ b/LDP/guide/docbook/Tuning-Linux/Tuning-Linux.sgml
@@ -0,0 +1 @@
+tuning_linux.sgml
\ No newline at end of file
diff --git a/LDP/guide/docbook/Tuning-Linux/conventions.sgml b/LDP/guide/docbook/Tuning-Linux/conventions.sgml
index 2c7ceb28..636870cd 100644
--- a/LDP/guide/docbook/Tuning-Linux/conventions.sgml
+++ b/LDP/guide/docbook/Tuning-Linux/conventions.sgml
@@ -8,6 +8,7 @@
This book uses the following conventions:
+
diff --git a/LDP/guide/docbook/Tuning-Linux/network.sgml b/LDP/guide/docbook/Tuning-Linux/network.sgml
index 093e5c22..bb9bbeb8 100644
--- a/LDP/guide/docbook/Tuning-Linux/network.sgml
+++ b/LDP/guide/docbook/Tuning-Linux/network.sgml
@@ -457,6 +457,7 @@ restarting autonegotiation...
460.8kbps
+
There is also a spd_cust entry that can use a custom speed instead
diff --git a/LDP/guide/docbook/Tuning-Linux/tuning_linux.sgml b/LDP/guide/docbook/Tuning-Linux/tuning_linux.sgml
index 2c0edc6d..70620f25 100644
--- a/LDP/guide/docbook/Tuning-Linux/tuning_linux.sgml
+++ b/LDP/guide/docbook/Tuning-Linux/tuning_linux.sgml
@@ -1,5 +1,5 @@
+
diff --git a/LDP/guide/docbook/cpg/Custom-Porting-Guide.xml b/LDP/guide/docbook/cpg/Custom-Porting-Guide.xml
index d07b4ffe..ed7c46d9 100644
--- a/LDP/guide/docbook/cpg/Custom-Porting-Guide.xml
+++ b/LDP/guide/docbook/cpg/Custom-Porting-Guide.xml
@@ -1,4 +1,4 @@
- xml version="1.0" encoding="ISO-8859-1" ?>
+
@@ -142,13 +142,13 @@ host two PCI Mezzanine cards (CCPMC) - Mezzanine cards that comply with Std CCPM
-Copyright & License
+Copyright & LicenseCopyright (c) 2002 Shie ElrichPermission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in .
+ A copy of the license is included in .
@@ -195,10 +195,12 @@ kernel is not from the HardHat CD, you should enable cross-compiling in the
Makefile by defining a CROSS_COMPILE entry in the following manner:
(a code segment from the main Makefile)
+
The Linux kernel is modular, and allows you to configure it and choose which blocks
should be compiled with the kernel. In order to do this, first cd /usr/src/linux
@@ -231,7 +233,7 @@ and perform the following steps:
Initialize the target by pressing Target|InitializePress File|Load Executable. A dialog box will open,
asking you to choose a file. Please choose your kernel image (vmlinux). Before pressing
- Load, don't forget to enter a value in the +/- Bias field.
+ Load, don't forget to enter a value in the +/- Bias field.
The bias field makes it possible to tell ICE to load a certain image in a different
address than what's stated in the ELF binary. We wanted to load the kernel into address
0x300000, and since the binary was linked to 0xC0000000, we entered
@@ -267,6 +269,7 @@ is it really booting?
and the oldest way is good here - printing to the screen. Obviously, we couldn't use printk(), so we wrote a short function which pushes characters straight into the serial port. We used the boot process map shown in the previous section, and inserted some prints along the way. This helped us to know at what stage we are completing and where we're dying. The following piece of code prints a single character to the serial port, by polling it and waiting for it to be free.
+
There's a better code for printing directly to the serial port, however, it's a bit
@@ -298,12 +302,14 @@ which are used to mark a certain machine, architecture or device. We defined our
it CONFIG_TESTMACH), and surrounded our new/modified code with these flags:
+
To activate our code, we added the new flag to the kernel configuration file - .config -
@@ -326,6 +332,7 @@ in our case 9600n1, and did not allow any command line options or
This function determines the console configuration at startup. Here's a small part of it:
+
The first (naive) thing we tried, was to configure the console the way we wanted.
@@ -359,7 +367,7 @@ decided it was a good time to let us know that our serial port wasn't standard.
flow control were not connected. We decided to remark-out the following line, which sets the RTS and DTR
lines high, because we just didn't have them.
-serial_out(info, UART_MCR, UART_MCR_DTR | UART_MCR_RTS);
+Ofcourse, this didn't help us much :-(
The lesson learned here was check, check, check your hardware!. Custom boards might
not be standard, and the porting will go a lot quicker if you know about it.
@@ -376,11 +384,13 @@ using the board's local bus frequency, bus clock to system clock ratio etc. This
out what the base baud was in a vxWorks system we had running on the board, and changed it to:
+
A quick compilation, and a reboot later we had a booting kernel visible through our serial port. Success!
@@ -402,6 +412,7 @@ A quick compilation, and a reboot later we had a booting kernel visible through
Once all this was done, we found todc_calibrate_descr(), which again uses the RTC chip. We had to replace that function with our own:
+
@@ -424,6 +436,7 @@ void calibrate_decr() {
We discovered that the CPC700 can be initialized to do automatic byte-swapping, which does little-to-big endian convertion on the fly. As it seems, our board was initialized to do just that. We added a small code segment in setup_arch(), which checks if byte-swapping is enabled, and if so, disables it:
+
A short compilation later, PCI probing was working! We got some beer and partied ;-)
@@ -452,6 +466,7 @@ A short compilation later, PCI probing was working! We got some beer and partied
Our board uses an Intel ethernet chip, called i82559er, which has a module called eepro100. After compiling the module and booting, we discovered that the module isn't working, although an ethernet device was found. We guessed that it was an irq problem, and that the devices don't get the IRQs they need. We modified a function called pmppc_map_irq() to map our ethernet devices:
+
The function maps IRQs according to IDselects, which means in the order on the PCI bus by which the devices are set. This structure is a bit tricky: min_idsel denotes the topleft corner of the array, and max_idsel is the bottomleft corner. irqs_per_slot is the number of IRQs per line. The structure is as follows:
+
As you can see, our i8559er needs IRQ 22, and is seated in IDselect 3. Of course, we didn't know that at the start, so we wrote a small piece of code that read all the vendor IDs in all the IDselects. Once done we compiled, but the ethernet device still didn't work.
@@ -506,11 +524,13 @@ As you can see, our i8559er needs IRQ 22, and is seated in IDselect 3. Of course
As mentioned, there is another way of mapping memory - ioremap(). ioremap() is used to map physical addresses into virtual ones, making them available to the kernel. The function does not allocate any memory, simply returns a virtual address by which one can access the memory region. The following is a snippet from MMU_init():
+
As you can see, we don't take the return value of ioremap(). We don't need it, since at this stage the kernel maps the addresses so that virtual address == physical address.
@@ -530,6 +550,7 @@ As you can see, we don't take the return value of ioremap()After messing with cache lines, we decided to go the FP way, and added the following function:
+
The function adds a floating point to the PowerPC MSR register, and makes sure that no exceptions will be generated as a result of doing FP. Once done, it uses an assembly code, described below in the sysOut64() to do the actual floating-point operation. Note that the function turns off interrupts, but this is acceptable here, since we use the function on rare occasion.
+
diff --git a/LDP/guide/docbook/cpg/cpg.xml b/LDP/guide/docbook/cpg/cpg.xml
new file mode 120000
index 00000000..437db9df
--- /dev/null
+++ b/LDP/guide/docbook/cpg/cpg.xml
@@ -0,0 +1 @@
+Custom-Porting-Guide.xml
\ No newline at end of file
diff --git a/LDP/guide/docbook/lame/lame.sgml b/LDP/guide/docbook/lame/lame.sgml
new file mode 120000
index 00000000..0794ccd0
--- /dev/null
+++ b/LDP/guide/docbook/lame/lame.sgml
@@ -0,0 +1 @@
+linux-admin-made-easy.sgml
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/dia b/LDP/guide/docbook/linux-ip/images/src/dia
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/dia
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/eps b/LDP/guide/docbook/linux-ip/images/src/eps
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/eps
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/fig b/LDP/guide/docbook/linux-ip/images/src/fig
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/fig
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/jpg b/LDP/guide/docbook/linux-ip/images/src/jpg
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/jpg
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/pdf b/LDP/guide/docbook/linux-ip/images/src/pdf
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/pdf
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/png b/LDP/guide/docbook/linux-ip/images/src/png
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/png
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/images/src/svg b/LDP/guide/docbook/linux-ip/images/src/svg
deleted file mode 120000
index b870225a..00000000
--- a/LDP/guide/docbook/linux-ip/images/src/svg
+++ /dev/null
@@ -1 +0,0 @@
-../
\ No newline at end of file
diff --git a/LDP/guide/docbook/linux-ip/versioninfo.ent b/LDP/guide/docbook/linux-ip/versioninfo.ent
index 7b2d437e..28b6b504 100644
--- a/LDP/guide/docbook/linux-ip/versioninfo.ent
+++ b/LDP/guide/docbook/linux-ip/versioninfo.ent
@@ -1,4 +1,10 @@
+
+
+
+
diff --git a/LDP/guide/docbook/linux-ip/xml b/LDP/guide/docbook/linux-ip/xml
deleted file mode 120000
index 945c9b46..00000000
--- a/LDP/guide/docbook/linux-ip/xml
+++ /dev/null
@@ -1 +0,0 @@
-.
\ No newline at end of file
diff --git a/LDP/guide/docbook/nag2/ch03.sgm b/LDP/guide/docbook/nag2/ch03.sgm
index b4089fc1..4c536636 100644
--- a/LDP/guide/docbook/nag2/ch03.sgm
+++ b/LDP/guide/docbook/nag2/ch03.sgm
@@ -1258,7 +1258,7 @@ the Linux kernel source and build a new kernel.
In the 2.2 kernels, the PLIP driver uses the “parport” parallel port
sharing driver developed by Philip Blundell.
-You can reach Philip at Philip.Blundell@pobox.com.
+You can reach Philip at Philip.Blundell@pobox.com.
The new driver allocates the PLIP network device names serially,
just as for the Ethernet or PPP drivers, so the first PLIP device created is
diff --git a/LDP/guide/docbook/nag2/ch06.sgm b/LDP/guide/docbook/nag2/ch06.sgm
index bf40a490..21fc9afe 100644
--- a/LDP/guide/docbook/nag2/ch06.sgm
+++ b/LDP/guide/docbook/nag2/ch06.sgm
@@ -2236,7 +2236,7 @@ case, you simply invoke it as:
$ nslookup
-hostname
+hostname
diff --git a/LDP/guide/docbook/sag/sag.sgml b/LDP/guide/docbook/sag/sag.sgml
new file mode 120000
index 00000000..07caa3ed
--- /dev/null
+++ b/LDP/guide/docbook/sag/sag.sgml
@@ -0,0 +1 @@
+sag-0.9.sgml
\ No newline at end of file
diff --git a/LDP/guide/docbook/solrhe/solrhe.xml b/LDP/guide/docbook/solrhe/solrhe.xml
new file mode 120000
index 00000000..ffe07d1d
--- /dev/null
+++ b/LDP/guide/docbook/solrhe/solrhe.xml
@@ -0,0 +1 @@
+Securing-Optimizing-Linux-RH-Edition-v1.3.xml
\ No newline at end of file
diff --git a/LDP/howto/docbook/ACPI-HOWTO.xml b/LDP/howto/docbook/ACPI-HOWTO.xml
index 78b8bdae..f1d9f46d 100644
--- a/LDP/howto/docbook/ACPI-HOWTO.xml
+++ b/LDP/howto/docbook/ACPI-HOWTO.xml
@@ -453,7 +453,7 @@ directory for the newly patched kernel. You should create a backup of all import
/usr/src/System.map
-It is possible the location of these files differs on your system. Use locate as follows if the files are not in the locations specified above: locate<file>
+It is possible the location of these files differs on your system. Use locate as follows if the files are not in the locations specified above: locate <file>
@@ -476,8 +476,10 @@ directory for the newly patched kernel. You should create a backup of all import
debian packages: binutils, e2fsprogs, gcc, make, module-init-tools, procps, util-linux (see also the list from 2.4)
+Learn more about the 2.6 kernel before you upgradeThis HOWTO does not include information on how to migrate from a 2.4 series kernel to a 2.6 series kernel. Please read the resources listed in before attempting a kernel upgrade.
+2.4.x series kernels
@@ -509,11 +511,13 @@ site to find the kernel you would like.Download the kernel and patch
+
- wgethttp://kernel.org/pub/linux/kernel/v2.4/linux-&kernel-version;.tar.bz2
+ wget http://kernel.org/pub/linux/kernel/v2.4/linux-&kernel-version;.tar.bz2Download the latest patch for your kernel. This may or may not be the newest patch available. Please look carefully. For example: if you are using the 2.4.20 kernel you would get acpi-20021212-2.4.20.diff.gz. The patches can be downloaded from: .Note the revision date. In this example above the date is 20021212 (December 12, 2002), but it will almost certainly be different for your kernel. You will need to know this number when you check to make sure the patch worked.
+
@@ -525,6 +529,7 @@ to your current kernel. This link must point to the new kernel, you will update
Unpacking your kernel source files
+
@@ -549,6 +554,7 @@ to your current kernel. This link must point to the new kernel, you will update
+
If your kernel needs to be patched, do so now.
@@ -577,6 +583,7 @@ different ACPI related options that you will need to select.Please also read the list of .
+
cd
@@ -610,6 +617,7 @@ different ACPI related options that you will need to select.
+
@@ -629,11 +637,13 @@ kernel. I still need this option even in the 2.6.6 kernel due to my nVidia graph
Each of these steps should be performed as the root user.
+
cd /usr/src/linuxmake-kpkg cleanmake-kpkg kernel_imagemodules_image
+
I no longer use .date to distinguish
kernel builds. It was too frustrating to have 030627a, 032627b (etc) as I tried to figure things out. I now use names, in alphabetical order, starting with the kernel build alien. My current kernel build is Ulairi. (The machine itself is Smeagol--a name it has earned.)
@@ -646,6 +656,7 @@ kernel builds. It was too frustrating to have 030627a, 032627b (etc) as I tried
Each of these steps should be performed as the root user.
+
@@ -697,28 +709,36 @@ system), you will need to check that you are running the new kernel with the cor
First you need to make sure you are running the correct kernel. This can be done with the command line tool uname. The
revision is the date the patch was released and will be different for each kernel release.
+
&prompt; uname
+Assuming you are indeed running the new kernel, you can now check the ACPI's revision date with the following command.
+&prompt; cat /proc/acpi/info
+This may give you only a version number, or a more detailed list. You are looking for the line that starts with version:.If for some reason that gives you no information, you can also check the message printed when ACPI was first loaded as the system was booting. This information can be printed to a terminal window with the application dmesg.
+&prompt; dmesg | grep ACPI.*Subsystem\ revision
+It should give the output:
ACPI: Subsystem revision 20040326. The revision number is the date the patch was originally released by the development team. If you patched your kernel according to this number will match the patch that you installed in .To read all the ACPI-related information, you can expand the pattern that grep matches and selectively print all ACPI messages:
+&prompt; dmesg | grep ACPI
+
@@ -908,6 +928,7 @@ look for the absence of errors.)
Patching your kernelThese steps should be performed as the root user.
+
cd
@@ -936,6 +957,7 @@ look for the absence of errors.)
(this is the actual patching part)
+
Once you have finished patching your kernel, continue reading at The normal way of compiling a kernel does not use
make-kpkg. Instead, it uses the following steps:
-
+Compile the kernel
+
cd
@@ -982,6 +1005,7 @@ generic way. In fact it is probably only 10 or so lines of difference.
(remember to unpack your modules first)
+
@@ -994,6 +1018,7 @@ lilo. If you are not doing things The Debian Way your Install the new kernel
+
cd
@@ -1025,6 +1050,7 @@ lilo. If you are not doing things The Debian Way your
+
diff --git a/LDP/howto/docbook/Accessibility-HOWTO.xml b/LDP/howto/docbook/Accessibility-HOWTO.xml
index b69c902a..48b4144b 100644
--- a/LDP/howto/docbook/Accessibility-HOWTO.xml
+++ b/LDP/howto/docbook/Accessibility-HOWTO.xml
@@ -1,5 +1,5 @@
-
+
Linux Accessibility HOWTO
@@ -585,7 +585,7 @@
operating system. More information is available at:
and the Linux Accessibility Resource Site (LARS) .
-W3C Web Accessibility initiative provides information and links on Web site accessibility. More information is available at: .
+W3C Web Accessibility initiative provides information and links on Web site accessibility. More information is available at: their website.
diff --git a/LDP/howto/docbook/Adv-Routing-HOWTO.sgml b/LDP/howto/docbook/Adv-Routing-HOWTO.sgml
index 568946bd..d07b263a 100644
--- a/LDP/howto/docbook/Adv-Routing-HOWTO.sgml
+++ b/LDP/howto/docbook/Adv-Routing-HOWTO.sgml
@@ -915,7 +915,7 @@ that connect a local network (or even a single machine) to the big Internet.
There are usually two questions given this setup.
-
+
Split access
The first is how to route answers to packets coming in over a
@@ -986,6 +986,7 @@ There are usually two questions given this setup.
or you are going to want to masquerade to one of the two providers. In both
cases you will want to add rules selecting which provider to route out from
based on the IP address of the machine in the local network.
+ Load balancing
@@ -1980,6 +1981,7 @@ ICMP
+
txqueuelen
@@ -1993,6 +1995,7 @@ execute: ifconfig eth0 txqueuelen 10
You can't set this parameter with tc!
+
@@ -2100,6 +2103,7 @@ latency parameter, which specifies the maximum amount of time a packet can
sit in the TBF. The latter calculation takes into account the size of the
bucket, the rate and possibly the peakrate (if set).
+
burst/buffer/maxburst
@@ -2115,6 +2119,7 @@ rates require a larger buffer. For 10mbit/s on Intel, you need at least
If your buffer is too small, packets may be dropped because more tokens
arrive per timer tick than fit in your bucket.
+
mpu
@@ -2124,6 +2129,7 @@ A zero-sized packet does not use zero bandwidth. For ethernet, no packet
uses less than 64 bytes. The Minimum Packet Unit determines the minimal
token usage for a packet.
+
rate
@@ -2131,6 +2137,7 @@ token usage for a packet.
The speedknob. See remarks above about limits!
+
@@ -2163,6 +2170,7 @@ our waits so we send just at peakrate.
However, due to de default 10ms timer resolution of Unix, with 10.000 bits
average packets, we are limited to 1mbit/s of peakrate!
+
mtu/minburst
@@ -2182,6 +2190,7 @@ all.
To calculate the maximum possible peakrate, multiply the configured mtu by
100 (or more correctly, HZ, which is 100 on Intel, 1024 on Alpha).
+
@@ -2287,6 +2296,7 @@ The SFQ is pretty much self tuning:
Reconfigure hashing once this many seconds. If unset, hash will never be
reconfigured. Not recommended. 10 seconds is probably a good value.
+
quantum
@@ -2296,6 +2306,7 @@ Amount of bytes a stream is allowed to dequeue before the next queue gets a
turn. Defaults to 1 maximum sized packet (MTU-sized). Do not set below the
MTU!
+
@@ -2434,6 +2445,7 @@ Read it for the strict definitions of the terms used.
An algorithm that manages the queue of a device, either incoming (ingress)
or outgoing (egress).
+
Classless qdisc
@@ -2441,6 +2453,7 @@ or outgoing (egress).
A qdisc with no configurable internal subdivisions.
+
Classful qdisc
@@ -2453,6 +2466,7 @@ bands which are, in fact, classes. However, from the user's configuration
perspective, it is classless as the classes can't be touched with the tc
tool.
+
Classes
@@ -2461,6 +2475,7 @@ tool.
A classful qdisc may have many classes, which each are internal to the
qdisc. Each of these classes may contain a real qdisc.
+
Classifier
@@ -2469,6 +2484,7 @@ qdisc. Each of these classes may contain a real qdisc.
Each classful qdisc needs to determine to which class it needs to send a
packet. This is done using the classifier.
+
Filter
@@ -2477,6 +2493,7 @@ packet. This is done using the classifier.
Classification can be performed using filters. A filter contains a number of
conditions which if matched, make the filter match.
+
Scheduling
@@ -2487,6 +2504,7 @@ go out earlier than others. This process is called Scheduling, and is
performed for example by the pfifo_fast qdisc mentioned earlier. Scheduling
is also called 'reordering', but this is confusing.
+
Shaping
@@ -2496,6 +2514,7 @@ The process of delaying packets before they go out to make traffic confirm
to a configured maximum rate. Shaping is performed on egress. Colloquially,
dropping packets to slow traffic down is also often called Shaping.
+
Policing
@@ -2505,6 +2524,7 @@ Delaying or dropping packets in order to make traffic stay below a
configured bandwidth. In Linux, policing can only drop a packet and not
delay it - there is no 'ingress queue'.
+
Work-Conserving
@@ -2514,6 +2534,7 @@ A work-conserving qdisc always delivers a packet if one is available. In
other words, it never delays a packet if the network adaptor is ready to
send one (in the case of an egress qdisc).
+
non-Work-Conserving
@@ -2524,6 +2545,7 @@ to a packet for a certain time in order to limit the bandwidth. This means
that they sometimes refuse to give up a packet, even though they have one
available.
+
@@ -2811,6 +2833,7 @@ The following parameters are recognized by tc:
Number of bands to create. Each band is in fact a class. If you change this
number, you must also change:
+
priomap
@@ -2824,6 +2847,7 @@ at the TC_PRIO priority to decide how to enqueue traffic.
This works just like with the pfifo_fast qdisc mentioned earlier, see there
for lots of detail.
+
The bands are classes, and are called major:1 to major:3 by default, so if
@@ -3051,6 +3075,7 @@ These are parameters you can specify in order to configure shaping:
Average size of a packet, measured in bytes. Needed for calculating maxidle,
which is derived from maxburst, which is specified in packets.
+
bandwidth
@@ -3059,6 +3084,7 @@ which is derived from maxburst, which is specified in packets.
The physical bandwidth of your device, needed for idle time
calculations.
+
cell
@@ -3069,6 +3095,7 @@ based on the packet size. An 800 and an 806 size packet may take just as long
to send, for example - this sets the granularity. Most often set to '8'.
Must be an integral power of two.
+
maxburst
@@ -3079,6 +3106,7 @@ at maxidle, this number of average packets can be burst before avgidle drops
to 0. Set it higher to be more tolerant of bursts. You can't set maxidle
directly, only via this parameter.
+
minburst
@@ -3096,6 +3124,7 @@ The time to wait is called the offtime. Higher values of minburst lead to
more accurate shaping in the long term, but to bigger bursts at millisecond
timescales.
+
minidle
@@ -3111,6 +3140,7 @@ it gets too low.
Minidle is specified in negative microseconds, so 10 means that avgidle is
capped at -10us.
+
mpu
@@ -3120,6 +3150,7 @@ Minimum packet size - needed because even a zero size packet is padded
to 64 bytes on ethernet, and so takes a certain time to transmit. CBQ needs
to know this to accurately calculate the idle time.
+
rate
@@ -3127,6 +3158,7 @@ to know this to accurately calculate the idle time.
Desired rate of traffic leaving this qdisc - this is the 'speed knob'!
+
@@ -3176,6 +3208,7 @@ the 'priority' parameter. Each time a class gets its turn, it can only send out
a limited amount of data. 'Allot' is the base unit of this amount. See
the 'weight' parameter for more information.
+
prio
@@ -3185,6 +3218,7 @@ The CBQ can also act like the PRIO device. Inner classes with lower priority
are tried first and as long as they have traffic, other classes are not
polled for traffic.
+
weight
@@ -3203,6 +3237,7 @@ using 'rate/10' as a rule of thumb and it appears to work well. The renormalized
weight is multiplied by the 'allot' parameter to determine how much data can
be sent in one round.
+
@@ -3239,6 +3274,7 @@ agencies on your link who do want to give each other freebies.
The control program tc also knows about 'sharing', which is the reverse
of 'isolated'.
+
bounded/borrow
@@ -3248,6 +3284,7 @@ A class can also be 'bounded', which means that it will not try to borrow
bandwidth from sibling classes. tc also knows about 'borrow', which is the
reverse of 'bounded'.
+
A typical situation might be where you have two agencies on your link which
@@ -3750,6 +3787,7 @@ packet.
Source mask 'match ip src 1.2.3.0/24', destination mask 'match ip dst
4.3.2.0/24'. To match a single host, use /32, or omit the mask.
+
On source/destination port, all IP protocols
@@ -3757,6 +3795,7 @@ Source mask 'match ip src 1.2.3.0/24', destination mask 'match ip dst
Source: 'match ip sport 80 0xffff', 'match ip dport 0xffff'
+
On ip protocol (tcp, udp, icmp, gre, ipsec)
@@ -3765,6 +3804,7 @@ Source: 'match ip sport 80 0xffff', 'match ip dport 0xffff'
Use the numbers from /etc/protocols, for example, icmp is 1: 'match ip
protocol 1 0xff'.
+
On fwmark
@@ -3791,6 +3831,7 @@ The number 6 is arbitrary.
If you don't want to understand the full tc filter syntax, just use
iptables, and only learn to select on fwmark.
+
On the TOS field
@@ -3806,6 +3847,7 @@ To select interactive, minimum delay traffic:
Use 0x08 0xff for bulk traffic.
+
@@ -4240,6 +4282,7 @@ Bases the decision on how the firewall has marked the packet. This can be
the easy way out if you don't want to learn tc filter syntax. See the
Queueing chapter for details.
+
u32
@@ -4247,6 +4290,7 @@ Queueing chapter for details.
Bases the decision on fields within the packet (i.e. source IP address, etc)
+
route
@@ -4254,6 +4298,7 @@ Bases the decision on fields within the packet (i.e. source IP address, etc)
Bases the decision on which route the packet will be routed by
+
rsvp, rsvp6
@@ -4265,6 +4310,7 @@ URL="http://www.isi.edu/div7/rsvp/overview.html"
>. Only useful
on networks you control - the Internet does not respect RSVP.
+
tcindex
@@ -4272,6 +4318,7 @@ on networks you control - the Internet does not respect RSVP.
Used in the DSMARK qdisc, see the relevant section.
+
@@ -4297,6 +4344,7 @@ here for convenience:
The protocol this classifier will accept. Generally you will only be
accepting only IP traffic. Required.
+
parent
@@ -4305,6 +4353,7 @@ accepting only IP traffic. Required.
The handle this classifier is to be attached to. This handle must be
an already existing class. Required.
+
prio
@@ -4312,6 +4361,7 @@ an already existing class. Required.
The priority of this classifier. Lower numbers get tested first.
+
handle
@@ -4319,6 +4369,7 @@ The priority of this classifier. Lower numbers get tested first.
This handle means different things to different filters.
+
@@ -4828,6 +4879,7 @@ Currently, three actions are available:
Causes this filter not to match, but perhaps other filters will.
+
drop
@@ -4839,6 +4891,7 @@ For example, you may have a name server that falls over if offered more than
5mbit/s of packets, in which case an ingress filter could be used to make
sure no more is ever offered.
+
Pass/OK
@@ -4847,6 +4900,7 @@ sure no more is ever offered.
Pass on traffic ok. Might be used to disable a complicated filter, but leave
it in place.
+
reclassify
@@ -4855,6 +4909,7 @@ it in place.
Most often comes down to reclassification to Best Effort. This is the
default action.
+
@@ -5158,6 +5213,7 @@ Kuznetsov <kuznet@ms2.inr.ac.ru> and Andi Kleen <ak@muc.de>
If the kernel decides that it can't deliver a packet, it will drop it, and
send the source of the packet an ICMP notice to this effect.
+
/proc/sys/net/ipv4/icmp_echo_ignore_all
@@ -5166,6 +5222,7 @@ send the source of the packet an ICMP notice to this effect.
Don't act on echo packets at all. Please don't set this by default, but if
you are used as a relay in a DoS attack, it may be useful.
+
/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts [Useful]
@@ -5175,6 +5232,7 @@ If you ping the broadcast address of a network, all hosts are supposed to
respond. This makes for a dandy denial-of-service tool. Set this to 1 to
ignore these broadcast messages.
+
/proc/sys/net/ipv4/icmp_echoreply_rate
@@ -5182,6 +5240,7 @@ ignore these broadcast messages.
The rate at which echo replies are sent to any one destination.
+
/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
@@ -5190,6 +5249,7 @@ The rate at which echo replies are sent to any one destination.
Set this to ignore ICMP errors caused by hosts in the network reacting badly
to frames sent to what they perceive to be the broadcast address.
+
/proc/sys/net/ipv4/icmp_paramprob_rate
@@ -5199,6 +5259,7 @@ A relatively unknown ICMP message, which is sent in response to incorrect
packets with broken IP or TCP headers. With this file you can control the
rate at which it is sent.
+
/proc/sys/net/ipv4/icmp_timeexceed_rate
@@ -5207,6 +5268,7 @@ rate at which it is sent.
This the famous cause of the 'Solaris middle star' in traceroutes. Limits
number of ICMP Time Exceeded messages sent.
+
/proc/sys/net/ipv4/igmp_max_memberships
@@ -5215,6 +5277,7 @@ number of ICMP Time Exceeded messages sent.
Maximum number of listening igmp (multicast) sockets on the host.
FIXME: Is this true?
+
/proc/sys/net/ipv4/inet_peer_gc_maxtime
@@ -5226,6 +5289,7 @@ Minimum interval between garbage collection passes. This interval is in
effect under low (or absent) memory pressure on the pool. Measured in
jiffies.
+
/proc/sys/net/ipv4/inet_peer_gc_mintime
@@ -5234,6 +5298,7 @@ jiffies.
Minimum interval between garbage collection passes. This interval is in
effect under high memory pressure on the pool. Measured in jiffies.
+
/proc/sys/net/ipv4/inet_peer_maxttl
@@ -5243,6 +5308,7 @@ Maximum time-to-live of entries. Unused entries will expire after this
period of time if there is no memory pressure on the pool (i.e. when the
number of entries in the pool is very small). Measured in jiffies.
+
/proc/sys/net/ipv4/inet_peer_minttl
@@ -5253,6 +5319,7 @@ time-to-live on the reassembling side. This minimum time-to-live
is guaranteed if the pool size is less than inet_peer_threshold.
Measured in jiffies.
+
/proc/sys/net/ipv4/inet_peer_threshold
@@ -5263,6 +5330,7 @@ entries will be thrown aggressively. This threshold also determines
entries' time-to-live and time intervals between garbage collection passes.
More entries, less time-to-live, less GC interval.
+
/proc/sys/net/ipv4/ip_autoconfig
@@ -5271,6 +5339,7 @@ More entries, less time-to-live, less GC interval.
This file contains the number one if the host received its IP configuration by
RARP, BOOTP, DHCP or a similar mechanism. Otherwise it is zero.
+
/proc/sys/net/ipv4/ip_default_ttl
@@ -5280,6 +5349,7 @@ Time To Live of packets. Set to a safe 64. Raise it if you have a huge
network. Don't do so for fun - routing loops cause much more damage that
way. You might even consider lowering it in some circumstances.
+
/proc/sys/net/ipv4/ip_dynaddr
@@ -5290,6 +5360,7 @@ address. Once your demand interface comes up, any local TCP sockets which haven'
connection that brings up your interface itself does not work, but the
second try does.
+
/proc/sys/net/ipv4/ip_forward
@@ -5297,6 +5368,7 @@ second try does.
If the kernel should attempt to forward packets. Off by default.
+
/proc/sys/net/ipv4/ip_local_port_range
@@ -5305,6 +5377,7 @@ If the kernel should attempt to forward packets. Off by default.
Range of local ports for outgoing connections. Actually quite small by
default, 1024 to 4999.
+
/proc/sys/net/ipv4/ip_no_pmtu_disc
@@ -5315,6 +5388,7 @@ determine the largest Maximum Transfer Unit possible on your path. See also
the section on Path MTU discovery in the
chapter.
+
/proc/sys/net/ipv4/ipfrag_high_thresh
@@ -5325,6 +5399,7 @@ ipfrag_high_thresh bytes of memory is allocated for this purpose,
the fragment handler will toss packets until ipfrag_low_thresh
is reached.
+
/proc/sys/net/ipv4/ip_nonlocal_bind
@@ -5335,6 +5410,7 @@ which doesn't belong to a device on your system. This can be useful when
your machine is on a non-permanent (or even dynamic) link, so your services
are able to start up and bind to a specific address when your link is down.
+
/proc/sys/net/ipv4/ipfrag_low_thresh
@@ -5342,6 +5418,7 @@ are able to start up and bind to a specific address when your link is down.
Minimum memory used to reassemble IP fragments.
+
/proc/sys/net/ipv4/ipfrag_time
@@ -5349,6 +5426,7 @@ Minimum memory used to reassemble IP fragments.
Time in seconds to keep an IP fragment in memory.
+
/proc/sys/net/ipv4/tcp_abort_on_overflow
@@ -5358,6 +5436,7 @@ A boolean flag controlling the behaviour under lots of incoming connections.
When enabled, this causes the kernel to actively send RST packets when a
service is overloaded.
+
/proc/sys/net/ipv4/tcp_fin_timeout
@@ -5371,6 +5450,7 @@ to overflow memory with kilotons of dead sockets, FIN-WAIT-2 sockets are
less dangerous than FIN-WAIT-1, because they eat maximum 1.5K of memory, but
they tend to live longer. Cf. tcp_max_orphans.
+
/proc/sys/net/ipv4/tcp_keepalive_time
@@ -5380,6 +5460,7 @@ How often TCP sends out keepalive messages when keepalive is enabled.
Default: 2hours.
+
/proc/sys/net/ipv4/tcp_keepalive_intvl
@@ -5389,6 +5470,7 @@ How frequent probes are retransmitted, when a probe isn't acknowledged.
Default: 75 seconds.
+
/proc/sys/net/ipv4/tcp_keepalive_probes
@@ -5402,6 +5484,7 @@ Default value: 9.
Multiplied with tcp_keepalive_intvl, this gives the time a link can be
non-responsive after a keepalive has been sent.
+
/proc/sys/net/ipv4/tcp_max_orphans
@@ -5416,6 +5499,7 @@ network conditions require more than default value, and tune network
services to linger and kill such states more aggressively. Let me remind you
again: each orphan eats up to 64K of unswappable memory.
+
/proc/sys/net/ipv4/tcp_orphan_retries
@@ -5426,6 +5510,7 @@ Default value 7 corresponds to 50sec-16min depending on RTO. If your machi
is a loaded WEB server, you should think about lowering this value, such
sockets may consume significant resources. Cf. tcp_max_orphans.
+
/proc/sys/net/ipv4/tcp_max_syn_backlog
@@ -5439,6 +5524,7 @@ make it greater than 1024, it would be better to change TCP_SYNQ_HSIZE in
include/net/tcp.h to keep TCP_SYNQ_HSIZE*16<=tcp_max_syn_backlog and to
recompile kernel.
+
/proc/sys/net/ipv4/tcp_max_tw_buckets
@@ -5451,6 +5537,7 @@ not lower the limit artificially, but rather increase it (probably, after
increasing installed memory), if network conditions require more than
default value.
+
/proc/sys/net/ipv4/tcp_retrans_collapse
@@ -5460,6 +5547,7 @@ Bug-to-bug compatibility with some broken printers.
On retransmit try to send bigger packets to work around bugs in
certain TCP stacks.
+
/proc/sys/net/ipv4/tcp_retries1
@@ -5470,6 +5558,7 @@ and it is necessary to report this suspicion to network layer.
Minimal RFC value is 3, it is default, which corresponds
to 3sec-8min depending on RTO.
+
/proc/sys/net/ipv4/tcp_retries2
@@ -5484,6 +5573,7 @@ says that the limit should be longer than 100 sec.
It is too small number. Default value 15 corresponds to 13-30min
depending on RTO.
+
/proc/sys/net/ipv4/tcp_rfc1337
@@ -5495,6 +5585,7 @@ sockets in the time-wait state.
Default: 0
+
/proc/sys/net/ipv4/tcp_sack
@@ -5503,6 +5594,7 @@ Default: 0
Use Selective ACK which can be used to signify that specific packets are
missing - therefore helping fast recovery.
+
/proc/sys/net/ipv4/tcp_stdurg
@@ -5516,6 +5608,7 @@ Linux might not communicate correctly with them.
Default: FALSE
+
/proc/sys/net/ipv4/tcp_syn_retries
@@ -5524,6 +5617,7 @@ Default: FALSE
Number of SYN packets the kernel will send before giving up on the new
connection.
+
/proc/sys/net/ipv4/tcp_synack_retries
@@ -5534,6 +5628,7 @@ piggybacked ACK on it, to acknowledge the earlier received SYN. This is part
2 of the threeway handshake. This setting determines the number of SYN+ACK
packets sent before the kernel gives up on the connection.
+
/proc/sys/net/ipv4/tcp_timestamps
@@ -5544,6 +5639,7 @@ sequence numbers. A 1 gigabit link might conceivably re-encounter a previous
sequence number with an out-of-line value, because it was of a previous
generation. The timestamp will let it recognize this 'ancient packet'.
+
/proc/sys/net/ipv4/tcp_tw_recycle
@@ -5552,6 +5648,7 @@ generation. The timestamp will let it recognize this 'ancient packet'.
Enable fast recycling TIME-WAIT sockets. Default value is 1.
It should not be changed without advice/request of technical experts.
+
/proc/sys/net/ipv4/tcp_window_scaling
@@ -5561,6 +5658,7 @@ TCP/IP normally allows windows up to 65535 bytes big. For really fast
networks, this may not be enough. The window scaling options allows for
almost gigabyte windows, which is good for high bandwidth*delay products.
+
@@ -5584,6 +5682,7 @@ to resend your packet on the same interface), it will send us a ICMP
Redirect. This is a slight security risk however, so you may want to turn it
off, or use secure redirects.
+
/proc/sys/net/ipv4/conf/DEV/accept_source_route
@@ -5593,6 +5692,7 @@ Not used very much anymore. You used to be able to give a packet a list of
IP addresses it should visit on its way. Linux can be made to honor this IP
option.
+
/proc/sys/net/ipv4/conf/DEV/bootp_relay
@@ -5607,6 +5707,7 @@ such packets.
The default is 0, since this feature is not implemented yet (kernel version
2.2.12).
+
/proc/sys/net/ipv4/conf/DEV/forwarding
@@ -5614,6 +5715,7 @@ The default is 0, since this feature is not implemented yet (kernel version
Enable or disable IP forwarding on this interface.
+
/proc/sys/net/ipv4/conf/DEV/log_martians
@@ -5622,6 +5724,7 @@ Enable or disable IP forwarding on this interface.
See the section on
.
+
/proc/sys/net/ipv4/conf/DEV/mc_forwarding
@@ -5629,6 +5732,7 @@ See the section on
If we do multicast forwarding on this interface
+
/proc/sys/net/ipv4/conf/DEV/proxy_arp
@@ -5640,6 +5744,7 @@ pseudo bridges'. Do take care that your netmasks are very correct before
enabling this! Also be aware that the rp_filter, mentioned elsewhere, also
operates on ARP queries!
+
/proc/sys/net/ipv4/conf/DEV/rp_filter
@@ -5648,6 +5753,7 @@ operates on ARP queries!
See the section on
.
+
/proc/sys/net/ipv4/conf/DEV/secure_redirects
@@ -5656,6 +5762,7 @@ See the section on
Accept ICMP redirect messages only for gateways, listed in default gateway
list. Enabled by default.
+
/proc/sys/net/ipv4/conf/DEV/send_redirects
@@ -5663,6 +5770,7 @@ list. Enabled by default.
If we send the above mentioned redirects.
+
/proc/sys/net/ipv4/conf/DEV/shared_media
@@ -5671,6 +5779,7 @@ If we send the above mentioned redirects.
If it is not set the kernel does not assume that different subnets on this
device can communicate directly. Default setting is 'yes'.
+
/proc/sys/net/ipv4/conf/DEV/tag
@@ -5678,6 +5787,7 @@ device can communicate directly. Default setting is 'yes'.
FIXME: fill this in
+
@@ -5700,6 +5810,7 @@ Maximum for random delay of answers to neighbor solicitation messages in
jiffies (1/100 sec). Not yet implemented (Linux does not have anycast support
yet).
+
/proc/sys/net/ipv4/neigh/DEV/app_solicit
@@ -5708,6 +5819,7 @@ yet).
Determines the number of requests to send to the user level ARP daemon. Use 0
to turn off.
+
/proc/sys/net/ipv4/neigh/DEV/base_reachable_time
@@ -5716,6 +5828,7 @@ to turn off.
A base value used for computing the random reachable time value as specified
in RFC2461.
+
/proc/sys/net/ipv4/neigh/DEV/delay_first_probe_time
@@ -5724,6 +5837,7 @@ in RFC2461.
Delay for the first time probe if the neighbor is reachable. (see
gc_stale_time)
+
/proc/sys/net/ipv4/neigh/DEV/gc_stale_time
@@ -5735,6 +5849,7 @@ to another machine). When ucast_solicit is greater than 0 it first tries to
send an ARP packet directly to the known host When that fails and
mcast_solicit is greater than 0, an ARP request is broadcast.
+
/proc/sys/net/ipv4/neigh/DEV/locktime
@@ -5743,6 +5858,7 @@ mcast_solicit is greater than 0, an ARP request is broadcast.
An ARP/neighbor entry is only replaced with a new one if the old is at least
locktime old. This prevents ARP cache thrashing.
+
/proc/sys/net/ipv4/neigh/DEV/mcast_solicit
@@ -5750,6 +5866,7 @@ locktime old. This prevents ARP cache thrashing.
Maximum number of retries for multicast solicitation.
+
/proc/sys/net/ipv4/neigh/DEV/proxy_delay
@@ -5759,6 +5876,7 @@ Maximum time (real time is random [0..proxytime]) before answering to an
request for which we have an proxy ARP entry. In some cases, this is used to
prevent network flooding.
+
/proc/sys/net/ipv4/neigh/DEV/proxy_qlen
@@ -5766,6 +5884,7 @@ prevent network flooding.
Maximum queue length of the delayed proxy arp timer. (see proxy_delay).
+
/proc/sys/net/ipv4/neigh/DEV/retrans_time
@@ -5775,6 +5894,7 @@ The time, expressed in jiffies (1/100 sec), between retransmitted Neighbor
Solicitation messages. Used for address resolution and to determine if a
neighbor is unreachable.
+
/proc/sys/net/ipv4/neigh/DEV/ucast_solicit
@@ -5782,6 +5902,7 @@ neighbor is unreachable.
Maximum number of retries for unicast solicitation.
+
/proc/sys/net/ipv4/neigh/DEV/unres_qlen
@@ -5790,6 +5911,7 @@ Maximum number of retries for unicast solicitation.
Maximum queue length for a pending arp request - the number of packets which
are accepted from other layers while the ARP address is still resolved.
+
Internet QoS: Architectures and Mechanisms for Quality of Service,
@@ -5799,6 +5921,7 @@ Zheng Wang, ISBN 1-55860-608-4
Hardcover textbook covering topics
related to Quality of Service. Good for understanding basic concepts.
+
@@ -5820,6 +5943,7 @@ log from the routing code. The higher the error_cost factor is, the fewer
messages will be written. Error_burst controls when messages will be dropped.
The default settings limit warning messages to one every five seconds.
+
/proc/sys/net/ipv4/route/error_cost
@@ -5830,6 +5954,7 @@ log from the routing code. The higher the error_cost factor is, the fewer
messages will be written. Error_burst controls when messages will be dropped.
The default settings limit warning messages to one every five seconds.
+
/proc/sys/net/ipv4/route/flush
@@ -5837,6 +5962,7 @@ The default settings limit warning messages to one every five seconds.
Writing to this file results in a flush of the routing cache.
+
/proc/sys/net/ipv4/route/gc_elasticity
@@ -5855,6 +5981,7 @@ URL="http://mailman.ds9a.nl/pipermail/lartc/2002q1/002667.html"
>this post by Ard van Breemen.
+
/proc/sys/net/ipv4/route/gc_interval
@@ -5862,6 +5989,7 @@ URL="http://mailman.ds9a.nl/pipermail/lartc/2002q1/002667.html"
See /proc/sys/net/ipv4/route/gc_elasticity.
+
/proc/sys/net/ipv4/route/gc_min_interval
@@ -5869,6 +5997,7 @@ See /proc/sys/net/ipv4/route/gc_elasticity.
See /proc/sys/net/ipv4/route/gc_elasticity.
+
/proc/sys/net/ipv4/route/gc_thresh
@@ -5876,6 +6005,7 @@ See /proc/sys/net/ipv4/route/gc_elasticity.
See /proc/sys/net/ipv4/route/gc_elasticity.
+
/proc/sys/net/ipv4/route/gc_timeout
@@ -5883,6 +6013,7 @@ See /proc/sys/net/ipv4/route/gc_elasticity.
See /proc/sys/net/ipv4/route/gc_elasticity.
+
/proc/sys/net/ipv4/route/max_delay
@@ -5890,6 +6021,7 @@ See /proc/sys/net/ipv4/route/gc_elasticity.
Delays for flushing the routing cache.
+
/proc/sys/net/ipv4/route/max_size
@@ -5898,6 +6030,7 @@ Delays for flushing the routing cache.
Maximum size of the routing cache. Old entries will be purged once the cache
reached has this size.
+
/proc/sys/net/ipv4/route/min_adv_mss
@@ -5905,6 +6038,7 @@ reached has this size.
FIXME: fill this in
+
/proc/sys/net/ipv4/route/min_delay
@@ -5912,6 +6046,7 @@ FIXME: fill this in
Delays for flushing the routing cache.
+
/proc/sys/net/ipv4/route/min_pmtu
@@ -5919,6 +6054,7 @@ Delays for flushing the routing cache.
FIXME: fill this in
+
/proc/sys/net/ipv4/route/mtu_expires
@@ -5926,6 +6062,7 @@ FIXME: fill this in
FIXME: fill this in
+
/proc/sys/net/ipv4/route/redirect_load
@@ -5935,6 +6072,7 @@ Factors which determine if more ICMP redirects should be sent to a specific
host. No redirects will be sent once the load limit or the maximum number of
redirects has been reached.
+
/proc/sys/net/ipv4/route/redirect_number
@@ -5942,6 +6080,7 @@ redirects has been reached.
See /proc/sys/net/ipv4/route/redirect_load.
+
/proc/sys/net/ipv4/route/redirect_silence
@@ -5950,6 +6089,7 @@ See /proc/sys/net/ipv4/route/redirect_load.
Timeout for redirects. After this period redirects will be sent again, even if
this has been stopped, because the load or number limit has been reached.
+
@@ -5997,6 +6137,7 @@ Specifies the length of the queue. Measured in bytes for bfifo, in packets
for pfifo. Defaults to the interface txqueuelen (see pfifo_fast chapter)
packets long or txqueuelen*mtu bytes for bfifo.
+
@@ -6650,8 +6791,7 @@ URL="http://linux-atm.sourceforge.net/"
This qdisc is not included in the standard kernels but can be downloaded from
�.
+/>.
Currently the qdisc is only tested with Linux 2.2 kernels but it will
probably work with 2.4/2.5 kernels too.
@@ -7070,6 +7210,7 @@ BUT
This would put additional load on the router and
some commercial routers might not even support this.
+
Using a Layer 4 switch.
@@ -7087,6 +7228,7 @@ The cost for this equipment is usually very high. Typical
layer 4 switch would normally cost more than
a typical router+good linux server.
+
Using cache server as network's gateway.
@@ -7107,6 +7249,7 @@ or the server itself might crash and no one on the
network will be able to access the Internet if
that occurs.
+
Linux+NetFilter router.
@@ -7117,6 +7260,7 @@ which is using NetFilter for "mark"ing the packets
with destination port 80 and using iproute2 to
route the "mark"ed packets to the Squid server.
+
@@ -7255,6 +7399,7 @@ naret# ip route add default via 10.0.0.2 dev eth0 table www.out
naret# ip route flush cache
+
@@ -7581,6 +7726,7 @@ This means that downloading or uploading files should not disturb SSH or
even telnet. These are the most important things, even 200ms latency is
sluggish to work over.
+
Allow 'surfing' at reasonable speeds while up or downloading
@@ -7589,6 +7735,7 @@ sluggish to work over.
Even though http is 'bulk' traffic, other traffic should not drown it out
too much.
+
Make sure uploads don't harm downloads, and the other way around
@@ -7597,6 +7744,7 @@ too much.
This is a much observed phenomenon where upstream traffic simply destroys
download speed.
+
It turns out that all this is possible, at the cost of a tiny bit of
@@ -7652,6 +7800,7 @@ eliminated, and moved to your Linux router. Luckily this is possible.
By limiting our upload speed to slightly less than the truly available rate,
no queues are built up in our modem. The queue is now moved to Linux.
+
Limit download speed
@@ -7663,6 +7812,7 @@ which causes TCP/IP to slow down to just the rate we want. Because we don't
want to drop traffic unnecessarily, we configure a 'burst' size we allow at
higher speed.
+
@@ -8348,6 +8498,7 @@ URL="http://scry.wanfear.com/~greear/vlan/cisco_howto.html"
Update: has been included in the kernel as of 2.4.14 (perhaps 13).
+
Alternate 802.1Q VLAN Implementation for Linux
+
Linux Virtual Server
+
CBQ.init
+
Chronox easy shaping scripts
+
Virtual Router
@@ -8523,6 +8678,7 @@ Not *one* ping packet was lost! Just after packet 4, I disconnected my P200
from the network, and my 486 took over, which you can see from the higher
latency.
+
@@ -8544,6 +8700,7 @@ URL="http://snafu.freedom.org/linux2.2/iproute-notes.html"
Contains lots of technical information, comments from the kernel
+
Slides by Jamal Hadi Salim, one of the authors of Linux traffic control
+
+
+
Differentiated Services on Linux
@@ -8590,6 +8750,7 @@ URL="ftp://icaftp.epfl.ch/pub/linux/diffserv/misc/dsid-01.txt.gz"
Kuznetsov describes DiffServ facilities in the Linux kernel, amongst which
are TBF, GRED, the DSMARK qdisc and the tcindex classifier.
+
+
+
Docum experimental site
+
TCP/IP Illustrated, volume 1, W. Richard Stevens, ISBN 0-201-63346-9
@@ -8636,6 +8800,7 @@ of practical information, examples, tests and also points out some CBQ/tc bugs.
Required reading if you truly want to understand TCP/IP. Entertaining as
well.
+
diff --git a/LDP/howto/docbook/Apache-Compile-HOWTO.sgml b/LDP/howto/docbook/Apache-Compile-HOWTO.sgml
index 72400494..1cc450fb 100644
--- a/LDP/howto/docbook/Apache-Compile-HOWTO.sgml
+++ b/LDP/howto/docbook/Apache-Compile-HOWTO.sgml
@@ -467,13 +467,14 @@ desk (yes, its funny and he loves it!)
freetype2-devel This RPM contains the header files
needed for phpre2cOnly needed if PHP is being built from the CVS tree
-
+
To be continued
All major distributions should include this general prerequisites.
+
@@ -534,7 +535,7 @@ Search for and replace it i.e with