Linux
Linux
"The DNS directory service consists of DNS data, DNS servers, and Internet
protocols for fetching data from the servers. The billions of resource
records in the DNS directory are split into millions of files called zones. Zones
are kept on authoritative servers distributed all over the Internet,
which answer queries according to the DNS network protocols. In contrast, caching
servers simply query the authoritative servers and cache any
replies. Most servers are authoritative for some zones and perform a caching
function for all other DNS information. Most DNS servers are
authoritative for just a few zones, but larger servers are authoritative for
tens of thousands of zones." -
What is DNS?
" The term Ethernet refers to the family of local-area network (LAN) products covered by the IEEE 802.3 standard that defines what is commonly known as the CSMA/CD protocol."
" The original Ethernet was developed as an experimental coaxial cable network in the
1970s by Xerox Corporation to operate with a data rate of 3 Mbps using a carrierxi
sense multiple access collision detect (CSMA/CD) protocol for LANs with sporadic butxi
occasionally heavy traffic requirements. Success with that project attracted early attentionxi
and led to the 1980 joint development of the 10-Mbps Ethernet Version 1.0 specificationxi
by the three-company consortium: Digital Equipment Corporation, Intel Corporation,xi
and Xerox Corporation." -
Internetworking Technology Handbook: Ethernet
Netfilter is the system compiled into the kernel which provides hooks into the IP stack
which loadable modules (e.g. iptables) can use to perform operations on packets.
IPTables consists of two parts: user-space tools and kernel-space modules.
The latter are distributed with the kernel, and include the main ip_tables module
as well as modules for NAT, logging, connection tracking, etc.
The former takes the form of the iptables binary, distributed separately from
the kernel and used to add, remove or edit rules for the various modules.
The netfilter/iptables project is the Linux 2.4.x / 2.5.x firewalling subsystem.
It delivers you the functionality of packet filtering (stateless or stateful),
all different kinds of NAT (Network Address Translation) and packet mangling.
" Internet Protocol (IP) multicast is a bandwidth-conserving technology that reduces traffic by simultaneously delivering a single stream of information to thousands of corporate recipients and homes. Applications that take advantage of multicast include videoconferencing, corporate communications, distance learning, and distribution of software, stock quotes, and news." - Internet Protocol Multicast
"Short for Point-to-Point Tunneling Protocol, a new technology for creating Virtual Private Networks (VPNs) , developed jointly by Microsoft Corporation, U.S. Robotics, and several remote access vendor companies, known collectively as the PPTP Forum. A VPN is a private network of computers that uses the public Internet to connect some nodes. Because the Internet is essentially an open network, the Point-to-Point Tunneling Protocol (PPTP) is used to ensure that messages transmitted from one VPN node to another are secure. With PPTP, users can dial in to their corporate network via the Internet." - Webopedia
"Short for Unix-to-Unix Copy, a Unix utility and protocol that enables one computer
to send files to another computer over a direct serial connection or via modems
and the telephone system. For most file transfer applications, UUCP has been
superseded by other protocols, such as FTP, SMTP and
NNTP." - Webopedia
"A private data network that makes use of the public telecommunication infrastructure,
maintaining privacy through the use of a tunneling protocol and security
procedures." - VPNC Glossary
UNIX/Linux Software
"Why is AWK so important? It is an excellent filter and report writer.
Many UNIX utilities generates rows and columns of information. AWK is
an excellent tool for processing these rows and columns, and is easier
to use AWK than most conventional programming languages. It can be
considered to be a pseudo-C interpretor, as it understands the same
arithmatic operators as C. AWK also has string manipulation functions, so it
can search for particular strings and modify the output. AWK also has
associative arrays, which are incredible useful, and is a feature most
computing languages lack. Associative arrays can make a complex problem a
trivial exercise." - Bruce Barnett (from
Awk)
CSS stands for Cascading Style Sheets and is a simple styling language which
allows attaching style to HTML elements. Every element type as well as every
occurance of a specific element within that type can be declared an unique
style, e.g. margins, positioning, color or size.
"IEEE 754-1985 governs binary floating-point arithmetic. It specifies number formats, basic
operations, conversions, and exceptional conditions. The related standard IEEE 854-1987
generalizes 754 to cover decimal arithmetic as well as binary." - IEEE 754 Group
"The Inter-Language Unification system (ILU) is a multi-language object interface system.
The object interfaces provided by ILU hide implementation distinctions between different
languages, between different address spaces, and between operating system types. ILU can
be used to build multi-lingual object-oriented libraries ("class libraries") with
well-specified language-independent interfaces. It can also be used to implement distributed
systems. It can also be used to define and document interfaces between the modules of
non-distributed programs. ILU interfaces can be specified in either the OMG's CORBA
Interface Definition Language (OMG IDL), or ILU's Interface Specification Language
(ISL). - Inter-Language Unification Page
"The IPC interface in BSD-like versions of Unix is implemented as a layer over the network
TCP and UDP protocols. Message destinations are specified as socket addresses; each socket
address is a communication identifier that consists of a port number and an Internet address.
The IPC operations are based on socket pairs, one belonging to a communication process.
IPC is done by exchanging some data through transmitting that data in a message between
a socket in one process and another socket in another process. When messages are sent,
the messages are queued at the sending socket until the underlying network protocol
has transmitted them. When they arrive, the messages are queued at the receiving
socket until the receiving process makes the necessary calls to receive
them." -
Sockets Programming in Java
"Sed is the ultimate stream editor. If that sounds strange, picture a stream
flowing through a pipe. Okay, you can't see a stream if it's inside a pipe.
That's what I get for attempting a flowing analogy. You want literature, read James Joyce.
Anyhow, sed is a marvelous utility. Unfortunately, most people never
learn its real power. The language is very simple, but the documentation is
terrible. The on-line manual pages for sed are five pages long, and two of
those pages describe the 34 different errors you can get. A program
that spends as much space documenting the errors that it does documenting
the language has a serious learning curve." - Bruce Barnett (from Sed)
"What is a shell, anyway? It's simple, really. The UNIX operating system is
a complex collection of files and programs. UNIX does not require
any single method or interface. Many different techniques can be used.
The oldest interface, which sits between the user and the software, is the
shell. Twenty five years ago many users didn't even have a video terminal.
Some only had a noisy, large, slow hard-copy terminal. The shell was
the interface to the operating system. Shell, layer, interface, these
words all describe the same concept. By convention, a shell is a user program
that is ASCII based, that allows the user to specify operations in a certain sequence.
There are four important concepts in a UNIX shell:
"A set of library routines that enable C programmers to describe arbitrary data structures
in a machine-independent way." -
External Data Representation: Technical Notes
XML is the Extensible Markup Language. It is designed to improve
the functionality of the Web by providing more flexible and adaptable information identification.
It is called extensible because it is not a fixed format like HTML
(a single, predefined markup language). Instead, XML is actually a
`metalanguage' - a language for describing other languages - hich lets
you design your own customized markup languages for limitless different
types of documents. XML can do this because it's written in SGML, the
international standard metalanguage for text markup
systems (ISO 8879). - XML FAQ
MathML is a low-level specification for describing mathematics as a basis for machine to machine communication.
SVG is a language for describing two-dimensional graphics and graphical applications in XML.
X3D is a powerful and extensible open file format standard for 3D visual effects, behavioral modelling and interaction. It provides an XML-encoded scene graph and a language-neutral Scene Authoring Interface (SAI). The XML encoding enables 3D to be incorporated into web services architectures and distributed environments, and facilitates moving 3D data between applications. The Scene Authoring Interface allows real time 3D content and controls to be easily integrated into a broad range of web and non-web applications.
XSL is a family of recommendations for defining XML document
transformation and presentation. It consists of three parts:
The XML User Interface Language (XUL) is a markup language for describing user interfaces.
Linux/UNIX Software
The original version of this document resides at
http://stommel.tamu.edu/~baum/programming.html.
From
The Linux System Administrator's Guide.
Can be installed from FreeBSD, Linux or DOS, and can
boot *BSD or Linux from the end
(greater than 8 Gb) of a single hard drive or from a second or later
hard drive.
Can boot OSs installed in primary and extended partitions on
any available hard disk.
Supports and can be installed from nearly all OSs, e.g. OS/2,
Windows, Linux DOS, *BSD, SCO, etc.
Designed to avoid BIO limitations by not using the BIOS, i.e. can be used
to boot from any place on a hard drive up to 137 Gb.
Works with the ext2 filesystem and IDE drives.
Uses something called UltraIO to "work with almost all x86 PCs,
operating systems and partition types."
The installation requirements are a PC clone, a hard disk and a
single FAT partition.
"Absolutely OS independent."
A boot loader that operates off an MS-DOS/Windows FAT filesystem, i.e.
it can (only) boot Linux from a FAT filesystem.
A kernel module that allows Linux to boot another kernel image into RAM
and restart the machine from that kernel.
Officially supoprts DOS, FreeBSD and Linux.
Supports BeOS, MS-DOS, FreeDOS, Linux (with LILO), Solaris,
VxWorks 5.x, Windows 95/98/ME, Windows NT/2000 and "others."
This also has many features not found in other freely available
boot manager.
This is a commercial offering that costs around $40. The
Amazon reviews indicate that it covers all the major available x86
operating systems except for Solaris x86. All the material therein is
probably covered in the following freely available entries, but if
you want it all in one place and can afford to part with the
Franklins, then there it is. I'm not paid a cent for any commercial
listings I may put in here, by the way.
To install Linux on a machine which already has Windows ME taking up
the entire hard disk, one must embark on a series of steps including
one - the repartioning step - that entails booting into real
DOS mode via ME. Bill Gates has
seen fit to hide this option in ME. This site offers a method of
working around this perfidious decision.
An article detailing how to use the patch described in the previous
entry.
Another method for booting into DOS from ME that requires a copy of
Windows 98.
Yet another option that entails creating a bootable floppy in ME, a
process that Gates has also deliberately made more difficult than it
used to be.
A recommended option for booting OpenBSD along with Windows 3.1,
Windows 95/98 and DOS.
A most helpful primer on hard drives and how they are partitioned.
How to multiboot OpenBSD and Windows NT using NTloader.
"Describes how to use NTLDR to boot Windows NT, Windows 98, Linux and
old versions of DOS using NTLDR."
"A MacOS application which boots the NetBSD/mac68k (and
OpenBSD/mac68k) operating system."
"MAP stands for Internet Message Access Protocol. It is a method of
accessing electronic mail or bulletin board messages that are kept on
a (possibly shared) mail server. In other words, it permits a "client"
email program to access remote message stores as if they were local.
For example, email stored on an IMAP server can be manipulated from a
desktop computer at home, a workstation at the office, and a
notebook computer while traveling, without the need to transfer messages
or files back and forth between these
compuuters." - What is IMAP?
"Lightweight Directory Access Protocol (LDAP) is an open-standard protocol for accessing X.500 directory services. The protocol runs
over Internet transport protocols, such as TCP.
LDAP is a lightweight alternative to the X.500 Directory Access Protocol (DAP) for use on the Internet. It uses TCP/IP stack verses the
overly complex OSI stack. It also has other simplications, such as the representing most attribute values and many protocol items as
textual strings, that are designed to
make clients easier to implement." -
OpenLDAP Faq-O-Matic
To support files larger than 2 GiB on 32-bit systems,
e.g. x86, PowerPC and MIPS, a number of changes to kernel and
C library have to be done. This
is called Large File Support (LFS). The support for LFS is not yet
complete in Linux and this article should give a short
overview of the current
status.
The complete text of the configuration help files for kernels
1.2.x through 2.2.x.
"GGI stands for "General Graphics Interface", and it is a project that aims to develop a reliable, stable and fast graphics system that
works everywhere. We want to allow any program using GGI to run on any platform requiring at most a recompile."
"Explores important network design
issues for today's modern mixed intranets. The authors
discuss many different platforms, including
Windows 95, Windows 98, Windows NT, OS/2 Warp, OS/2 Warp Server,
AIX, Macintosh, WorkSpace
On-Demand, Linux, Solaris, and others. The [536 page] book examines how
to connect these systems in a reliable,
flexible, high-performance TCP/IP network."
"A networking-centric micro-distribution of Linux that can be used in place of a traditional router. LRP is small enough to fit on a single floppy disk, and makes building and maintaining routers, bridges, firewalls, switches, and access servers very easy."
The original version of this document resides at
http://stommel.tamu.edu/~baum/programming.html.
This FAQ contains x86 assembly language information common
to all assemblers.
A PDF document.
"The tutorial has extensive coverage of interfacing assembly
and C code and so might be of interest to C programmers who
want to learn about how C works under the hood. All the
examples use the free NASM (Netwide) assembler. The
tutorial only
covers programming under 32-bit protected mode and
requires a 32-bit protected mode compiler."
"This document describes the basics of assembly language
programming for the Intel 80x86 microprocessors. It is
geared towards using the freely available NetWide
Assembler, NASM, to generate programs that will run
under MS-DOS. As such, it will concentrate on producing
16-bit .COM programs, using only the facilities that have
been present since the original 8086."
"In this tutorial I will attempt to show you how you can use
assembly language writing Unix programs,
specifically under FreeBSD.
This tutorial does not explain the basics of assembly
language. ... However, once the tutorial is finished,
any assembly language programmer will be able to write
programs for FreeBSD quickly and efficiently."
An extended and annotated version of the previous entry.
A free account must be established to view this.
A free acount must be established to view this.
A PDF version of the following entry.
An HTML version of the previous entry.
"This is a glossary of C++ terms, organized alphabetically by concept."
"alt.comp.lang.learn.c-c++ is a self-moderated newsgroup for the
discussion of issues that concern novice to intermediate C and C++
programmers."
"What follows is a set of rules, guidelines, and tips that we
have found to be useful in making C++ code portable across
many machines and compilers.
This information is the result of porting large amounts of
code across about 25 different machines, and at least a dozen
different C++ compilers. Some of these things will frustrate you
and make you want to throw your hands up and say,
``well, that's just a stupid compiler if it doesn't do
[insert favorite C++ feature].'' But this is the reality of
portable code.
If you play by the rules, your code will seamlessly work
on all of the Mozilla platforms and will be easy to port to newer
machines."
Requires free registration to view.
"Meant for programmers making the transition from BASIC or Pascal to
C or C++."
"For knowledgeable users of C who would like to make the transition to
C++."
"Some general guidelines for avoiding some of the more common
mistakes that will cause code bloat."
"A template idiom providing a class which allows us to wrap an
instance of another class, maintaining access to that class's members,
but adding functionality in a way that is transparent to the wrapped
class."
A technique for writing programs in a subset of C++ which are interpreted
at compile time, e.g. language features such as for loops and if statements
can be replaced by template specialization and recursion.
"A C++ technique for passing expressions as function arguments."
Requires free registration for access.
Requires free registration for access.
Requires free registration for access.
Requires free registration for access.
Requires free registration for access. The angry badger quelled
our fears by pontificating about interfrastic counterfactuals.
"This handout should serve you only as a reference to the commands of
Fortran in the ANSI 77, 90 and 95 standards.
Only rudimentary examples are given to remind you of the syntax, and some
tedious details that you are not expected to remember are
tabulated for reference purposes."
"This guide concentrates on topics which are not discussed in
ordinary Fortran courses and regular textbooks: good programming
practices, and various technical and numerical issues."
"The Fortran Journal is no longer published. However, a few old issues
are available online."
This one has been lost to the ages, although leaving it in allows me to spot
those who
borrow this page without attribution.
"Solves some compatibility problems of the f2c Fortran-to-C
translator and other f77-extended-standard compilers."
From the Sun
Fortran Programmer's Guide.
"Pyfort is a tool for connecting Fortranroutines to Python."
"A Python program that generates Python C/API modules wrapping
Fortran 77/90/95 codes to Python."
"So I conclude that 754 is a virus, infecting individual programs, and making
them unable to run on non-IEEE-754 hardware."
"This directory contains a small collection of test programs for examining the
behavior of IEEE 754 floating-point arithmetic, together with test input andxi
output files. There are also a few additional test programs for other data types."
"A precision and range independent tool to test whether an implementation of
floating-point arithmetic (in hardware or software) is compliant with the
principles of the IEEE floating-point standard."
"A free, high-quality software implementation of the IEC/IEEE Standard for
Binary Floating-point Arithmetic."
"A program for testing whether a computer's floating-point conforms to the
IEC/IEEE Standard for Binary Floating-point Arithmetic."
ipchains
iptables
PostScript version.
"A wrapper generator for matrix languages."
"Inline.pm is a new module that glues other programming languages to Perl. It allows you to write C, C++,
and Python code directly inside your Perl scripts and modules."
"A C++ library which enables seamless interoperability between C++
and the Python programming language."
"SIP is a tool that makes it very easy to create Python bindings for C++ libraries."
"Pyrex lets you write code that mixes Python and C data types any way
you want, and compiles it into a C extension for Python."
"The weave package allows the inclusion of C/C++ within Python code."
"SILOON (Scripting Interface Languages for Object-Oriented Numerics) gives users the
ability to rapidly prototype their scientific codes in a simple yet elegant fashion using the
popular scripting languages Python and Perl. While programming in these flexible and dynamic
languages, SILOON users maintain the capability of accessing the full power and complexity
of C++ and FORTRAN 90 libraries executed on high-performance parallel
computers."
A project to create an integrated messaging, scheduling, and parallel programming API
together with syntax and semantics to support the emerging computational
hierarchies of node architectures and gigabit/s networks efficiently.
The OpenMP Application Program Interface (API) supports multi-platform shared-memory
parallel programming in C/C++ and Fortran on all architectures, including Unix
platforms and Windows NT platforms. Jointly defined by a group of major computer
hardware and software vendors, OpenMP is a portable, scalable model that gives
shared-memory parallel programmers a simple and flexible interface for developing
parallel applications for platforms ranging from the desktop to the supercomputer.
"An object-oriented 3D toolkit offering a comprehensive solution to
interactive graphics programming problems."
"Using Open Inventor to create 3D scenes and animation effects."
"Describes how to create new classes and how to customize existing
classes in the Open Inventor toolkit."
"A powerful and comprehensive programming interface for developers creating
real-time visualization and other performance-oriented 3D graphics
applications."
"A development environment used to build portable 2D/3D/stereo high
performance graphics, virtual reality, visualization applications and
games for UNIX/X11 and Win32 platforms."
"A high-level 3D graphics library which offers binary and source
level compatibility with Apple's Quickdraw 3D API."
"A high performance 3D scene graph and effect visualization toolkit for
Linux, Win32 and IRIX."
"A graphics library designed for drawing two or three dimensional graphics
of a scalar function of two variables and a two dimensional vector field
on a variable grid."
A book available in PDF format.
RTF format only.
A detailed guide to the basic workings of Microsoft's SMB/CIFS
protocol suite.
Covers NBT, SMB, NBNS/WINS, the Network Neighborhood, and
Authentication.
Provides all the information needed to build a working SMB/CIFS
client to interoperate with Samba and MS-Windows Servers.
Elk is an implementation of the Scheme programming language. In contrast to existing, stand-alone Scheme systems Elk has been designed
specifically as an embeddable, reusable extension language subsystem for applications written in C or C++.
This document is an attempt to fully describe the SCSI subsystem in the Linux kernel. At the time of this writing, the document is incomplete in the sense
that there are many sections of this document that are not yet written.
This is a three page PDF file.
"Shell has emerged as a family of programming languages for the
UNIX Operating System in the same sense that JCL emerged as a
programming language for mainframe job control in the 1960s. It is a
family of languages because we find variant syntaxes and capabilities in the
Bourne shell, the Korn shell, the C shell, and others. Most of the patterns
described here apply equally well to all these variants.
These patterns do not form a full pattern language nor are they a
comprehensive collection of patterns for the "architecture" of a Shell program.
They cover frequent Shell programming problems that often are resolved
only with expert insight."
The Open Group Single UNIX Specification's definition of the
XSI Shell Command Language.
Rc is a command interpreter for Plan 9 that provides
similar facilities to UNIX's Bourne shell, with some small additions and less
idiosyncratic syntax.
"Eshell is a command shell implemented entirely in Emacs Lisp.
It invokes no external processes beyond those requested by the
user. It is intended to be a functional replacement for command shells
such as bash, zsh, rc, 4dos; since Emacs itself is capable of
handling most of the tasks accomplished by such tools."
"The standard
interpreter associated with the hush library is a
shell, called hush, including a number of the available extensions of
Tcl/Tk and widgets developed by ourselves (such as a www and a video
widget). The hush library offers a C++ interface to the Tcl/Tk toolkit
and its extensions. It allows the programmer to employ the
functionality of Tcl/Tk in a C++ program."
Scsh is
a Scheme shell, i.e.
a Unix shell which uses Scheme
as its scripting language.
"The OpenACS toolkit is a PostgreSQL port of the ArsDigita
Community System, a comprehensive Open Source toolkit for building
Web sites backed by Oracle."
The author says these online notes are obsolete, although
a more current
version is available in PS and PDF format.
"FXDR is a library that allows you to make calls to the XDR (eXternal Data Representation) routines from Fortran."
A set of HTMLized X11 man pages with internal crosslinks.
This is a PDF document.
Part of
Coping with UNIX: A Survival Guide.
SVG profiles suitable for cellphones (Tiny) and PDAs (Basic).
A version of SVG specifically suited to hard-copy output.
The original version of this document resides at
http://stommel.tamu.edu/~baum/programming.html.