Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Bigger doesn't imply better. Bigger often is a sign of obesity, of lost control, of overcomplexity, of cancerous cells

IPv6 on Solaris


Recommended Books Recommended Links Recommended Papers Reference RFCs
IPv6 Routing TCP/Protocol layers Transport Layer Application Layer Troubleshooting Classic Net tools
inetd sniffers tcpdump snoop Humor Quiz



IPv6 Routing

Configuring IPv6-Over-IPv4 Tunnels



Internet Protocol version six (IPv6) as defined in RFC 2460 is the most recent version of the IPv6 protocol specification. In 1991, the Internet Architecture Board (IAB) sponsored a working group to resolve the issue of running out of IP addresses. The IAB working group incorrectly predicted that all Class B networks would be allocated by 1994 and that all IP addresses would be allocated by 2002 (see Christian Huitema, Routing in the Internet, Second Edition, 2000). Neither event happened.

Invented by Steve Deering and Craig Mudge at Xerox PARC, IPv6 was adopted by the Internet Engineering Task Force in 1994. That means that currently the protocol is 12 years old and deserve to be entered to Guinness book as one of the protocols that took the longest time from specification to full scale implementation. The other possible, and probably simpler, solution was just to double the size of all fields of IPv4 headers, preserving full compatibility. That would ensure that addresses became 64 Bits and would be very natural due to gradual move from 32-bit CPU to 64-bit CPUs.

But IPv6 was designed by the IETF not to enhance but to replace IP Version 4 ("IPv4") with very little thought about optimal transition path and associated costs. Moreover as with many "version two" attempts the designers solved issues that proved to be premature (address depletion) and did not address really critical issues that matter (transition from IP v4) and that ensured that for so many years after the initial design IPv6 still is a mirage rather then fact of Internet life.

IPv6 might solve several of IPv4's shortcomings, but the longer headers and much larger address space with multiple addresses per single interface add overhead that affects a range of performance metrics for both TCP and UDP.

Internet Protocol version 6 (IPv6) is the most recent version of the IP specification. Refer to RFC 2460 for a description of IPv6. In 1991, the Internet Architecture Board (IAB) sponsored a working group to address
a pending IP address shortage.

The IPv4 address shortage is only one reason that IPv6 was developed. IPv6 was designed to be a generic improvement of IPv4 and among other problems designed to resolve the following:

  1. Autoconfiguration IPv6 systems configure their IPv6 addresses automatically like in IPX using MAC addresses of interfaces. That means that there is no need for complex machinery of assigning IPv6 addresses, as is done in IPv4. For example there is no need in DHCP. Autoconfiguration automatically allocates IPv6 addresses to systems. DNS is still required.
  2. Performance. IPv4 routing consumes a large amount of processing power on each router. IPv6 uses a simpler header that theoretically makes routing IPv6 more efficient; therefore, IPv6 might provides improved performance on higher speeds.

  3. Security. Internet Protocol Security Architecture (IPsec) provides optional security mechanisms that include secure datagram authentication and encryption mechanisms within IP. When you invoke IPsec, it applies the security mechanisms to IP datagrams that you enabled in the IPsec global policy file. Applications can invoke IPsec to apply security mechanisms to IP datagrams on a per-socket level. When you invoke IPSec with IPv4, it applies encryption to the whole network stream creating a virtual circuit for all traffic both that requires security protection and the traffic that is not.

IPv6 is supported on Solaris since March 2000 (Solaris 8 was the first version of IP v6 support). Solaris has dual stack implementation and can run IPv4 and IPv6 simultaneously.

Solaris is probably the leading OS as for IPv6 support: it supports IPv6 for more then 6 years. Suppput for IPv6 was significantly improved versions 9 and 10. Solaris 10 has rather complete support of IPv6 including X11 support (see Solaris 10 Data Sheets and [PDF] Sun & IPv6 ) :

New Solaris 10 Networking Features

So far major deployment were limited to government and military: Federal agencies have until June 2008 to upgrade their network backbones to IPv6. The movement toward IPv6 2008 deadline set by the Office of Management and Budget is very sluggish (see GCN report).

As Microsoft's Vista will be fully IPv6-capable that might create some opportunities to deployment of ipv6 on mass scale among large businesses as well.

In current version of Solaris most network related applications and daemons are "IPv6-ready", for example bind provides DNS service for IPv6 addresses.

Right now outside government networks, public IPv6 addresses are practically useless. There are some providers in Asia, Europe and Eastern Europe that attempt to use it as public service, but they face uphill battle against entrenched IPv4 universe. As David Bernstein noted: "The IPv6 designers made a fundamental conceptual mistake: they designed the IPv6 address space as an alternative to the IPv4 address space, rather than an extension to the IPv4 address space. "[ipv6mess]

So despite all problems with IPv4, it still dominates Internet and as of 2006 adoption of IPv6 is almost invisible. Due to recent innovations like CIDR, IPv4 proved to remarkably resilient despite of its age. NAT generally resolved the problem of a shortage of IPv4 addresses, the key motivation of designing IPv6 and IP space exhaustions might not happen before, say 2012 (again as I mentioned above the U.S. Government mandated that all network backbones of federal agencies must deploy IPv6 by 2008.[1]; that meains that 2012 is right guestimate :-) Actually the Department of Defense currently is the only federal body to have made some real progress in implementing IPv6.

Along with providing larger address space (the problem that was solved by CIDR in IPv4) IPv6 tried to simplify headers to provide to high speed routing and add a couple of improvements to IPv4 such as address autoconfiguration. The host part of IPv6 addresses can replicate MAC addresses and thus can be assigned automatically.

Some introductory information about the protocol can be found in our IPv6 FAQ. For those interested in the technical details, we have a list of IPv6 related specifications.

IPv6 Addressing

An IPv4 address is a 32-bit value that's usually written in "dotted quad" representation, where each "quad" represents a byte value between 0 and 255, for example: This allows a theoretical number of 2^32 or ~4 billion hosts to be connected on the Internet.

IPv6 addresses use 128-bit technology, which results in 2128 theoretically addressable hosts. Because of the autoconfiguration capability in IPv6 (host address is based on MAC), it less difficult to administer IPv6 addressing than iIPv4. The first part of the address is the format prefix, followed by a routable prefix or padding. The second part of the address is the interface identifier, analogous to the IPv4 host portion, and is derived from the system's media access control (MAC) address.

IPv6 addresses are written as a 16-bits groups using hex notation with groups separated by colons and as such much less transparent, memorizable or understandable then IPv4 addresses. For example:


This address shows a special IPv6 trick -- a number of consecutive zeros can be abbreviated by a single "::". The above address is thus equivalent to fe80:0:0:0:2a0:d2ff:fea5:e9f5 -- leading zeros within 16-bit groups can be omitted.

Like in IPv4 addresses are split in two network and host parts. The bits are known as netbits and hostbits, and in both IPv4 and v6, the netbits are the "left," or most significant bits of an IP number; and the host bits are the "right," or least significant bits:

|      n netbits     |   128-n  hostbits  |

In IPv4, the border is drawn with the aid of the netmask, which is an implicit additional information for the address and is used to mask all net/host bits. Typical examples are which uses 16-bit for addressing the network, and 16-bit for the host.

When addressing switched from classful addressing to CIDR routing, the borders between net and host bits stopped being 8-bit boundaries and netmask value became less transparent. As a replacement, the number of network bits is used for a given address, to denote the border. Thus

is the same as a netmask of (24 netbits). The same scheme is used in IPv6:


tells us that the address used here has the first (left-most) 64 bits used as the network address, and the last (right-most) 64 bits are used to identify the machine on the network. The network bits are commonly referred to as the (network) "prefix", and the prefix here would be 64 bits.

Common addressing schemes found in IPv4 are the (old) class B and class C nets. With a class C network (/24), 24 bits are assigned by your provider, which leaves 8 bits to be assigned by you. If you want to add any subnetting to that, you end up with "uneven" netmasks that are a bit tricky to deal with. Class B networks (/16) are easier cases where only 16 bits are assigned by the provider, and systems that allow subnetting, or splitting of the right-most bits into two parts -- one to address the on-site subnet, and one to address the hosts on that subnet. Usually, this is done on byte (8-bit) boundaries. Using a netmask of (or a /24 prefix) allows flexible management even of bigger networks. Of course there is the upper limit of 254 machines per subnet, and 256 subnets.

With 128 bits available for addressing in IPv6, the scheme commonly used is the same, only the fields are wider. Providers usually assign /48 networks, which leaves 16 bits for a subnetting and 64 host bits.

IPv6 addresses compared to IPv4 addresses.
IPv6 addresses have a similar structure to class B addresses.

Now while the space for network and subnets is sufficient, using 64 bits for addressing hosts seems like a waste. It's unlikely that you will want to have several billion hosts on a single subnet, so what is the idea behind this?

The idea behind having fixed-width, 64-bit wide host identifiers is that they aren't assigned manually as in IPv4. IPv6 borrows a trick from Novell IPX playbook and use MAC addresses as the base for forming host addresses.

IPv6 host addresses are recommended (but not mandated!) to be built from so-called EUI64 addresses. EUI64 addresses are -- as the name says -- 64-bits wide, and derived from MAC addresses of the underlying network interface. For example, with Ethernet, the 6-byte (48-bit) MAC address is usually filled with the hex bits "fffe" in the middle -- the MAC address


results in the EUI64 address


which again gives the host bits for the IPv6 address.


These host bits can now be used to automatically assign IPv6 addresses to hosts, which supports autoconfiguration of v6 hosts -- all that's needed to get a complete v6 IP number is the first (net/subnet) bits. IPv6 also offers a solution to assign them automatically.

When on a network of machines speaking IP, there's usually one router which acts as the gateway to outside networks. In IPv6 land, this router will send "router advertisement" information which clients are expected to either receive during operation or solicit upon startup. The router advertisement information includes data on the router's address, and which address prefix it routes. With this information and the host-generated EUI64 address, a v6-host can calculate its IP number, and there is no need for manual address assignment. Of course, routers still need someconfiguration.

The advertisement information routers create is part of the Neighbor Discovery Protocol (NDP, see [RFC2461]), which is the successor to IPv4's ARP protocol. In contrast to ARP, NDP does not only do lookup of v6 addresses for MAC addresses (the neighbor solicitation/advertisement part), but also does a similar service for routers and the prefixes they serve, which is used for autoconfiguration of IPv6 hosts as described in the last paragraph.

Types of addresses

Like IPv4, IPv6 has three types of addresses that you can use to communicate across a network. For sending messages, IPv6 supports:

IPv6 differs from IPv4 in that IPv6 does not use broadcast addresses as a broadcast mechanism. Usually, several types of IPv6 addresses are assigned to the same physical interface.

Multiple addresses of the same interface

In IPv4, a host usually has one IP number per network interface -- or even per machine if the IP stack supports it. Only very rare applications like web servers result in machines having more than one IP number.

In IPv6, this is different. For each interface, there is not only a globally unique IP address, but there are two other addresses that are of interest:

The format prefix (FP) in the address indicates the type of IPv6 address that is used. Similar to local and non-routable addresses in IPV4. For example:

Note: Refer to RFC 2373 for information about FPs


In IP land, there are three ways to talk to a host: unicast, broadcast, and multicast. The most common way to talk to a host is by talking to it directly using its unicast address. In IPv4, the unicast address is the "normal" IP address assigned to a single host, with all address bits assigned. The broadcast address used to address all hosts in the same IP subnet has the network bits set to the network address, and all host bits set to "1" (which can be easily done using the netmask and some bit operations). Multicast addresses are used to reach a number of hosts in the same multicast group, which can be machines spread across the Internet. Machines must join multicast groups explicitly to participate, and there are special IPv4 numbers used for multicast addresses, allocated from the 224/8 subnet. Multicast isn't used very much in IPv4, and only few applications like the MBone audio and video broadcast utilities use it.

In IPv6, unicast addresses are used the same as in IPv4, no surprise there -- all the network and host bits are assigned to identify the target network and machine. Broadcasts are no longer available in IPv6 in the way they were in IPv4, this is where multicasting comes into play.

Addresses in the ff::/8 network are reserved for multicast applications, and there are two special multicast addresses that supersede the broadcast addresses from IPv4.

One is the "all routers" multicast address, the others is for "all hosts".

The addresses are specific to the subnet, for example, a router connected to two different subnets can address all hosts/routers on any of the subnets it's connected to. Addresses here are:

where "X" is the scope ID of the link here, identifying the network. Usually this starts from "1" for the "node local" scope, "2" for the first link, etc. Note that it's perfectly OK for two network interfaces to be attached to one link, thus resulting in double bandwidth:

One use of the "all hosts" multicast is in the neighbor solicitation code of NDP, where any machine that wants to communicate with another machine sends out a request to the "all hosts" group, and the machine in question is expected to respond.

Duplicate Address Detection

Systems run a duplicate address detection algorithm on an address before that address is assigned to an interface. This is done without regard to how manner in which the address was obtained. The duplicate address detection algorithm works by sending a neighbor solicitation message to the network that contains the address in question.

The system receives a neighbor advertisement from any device that is currently using the address. Therefore, if no response is received, the systems assume that the address is available for use and is assigned to the interface.

The autoconfiguration process requires manual intervention if the address in question is not unique.

Top Visited
Past week
Past month


Old News ;-)

[Dec 4, 2006] Command Information

Part One: A Business Perspective
Command Information demonstrates the business case for the U.S. to embrace IPv6.

Part Two: An Analysis of the Business & Financial IPv6 Marketplace
Command Information examines the business facts and figures behind this rapidly sweeping technology.

802.11 Wireless vLAN Trunking and IPv6 Deployment BriefWireless vLAN implementations can allow broadcast and multicast traffic to "leak" across vLAN boundaries. Depending on the deployment, while running only IPv4, this might not cause any unusual observed behavior. Once some vLANs are enabled for IPv6, creating dual-stack or IPv6-only vLANs, IPv6 multicast traffic may leak onto IPv4-only subnets, resulting in connectivity problems. This brief describes the issue, and provides an explanation and solutions.

IPv6 Explained: Anatomy of an IPv6 Address

IPv6 is the next generation Internet protocol. In simplest terms, Internet protocol is the set of techniques used to transmit data over the Internet. IPv6 was designed to replace the current version, IPv4, and will bring superior reliability, flexibility and security to the Internet. IPv6 will have a dramatic impact on military operations, corporate security, mobility, supply chain management and other key business functions worldwide.

[Dec 4, 2006] Basic IPv6 on Solaris

Jul 19, 2006 ( For testing INN, I needed to get IPv6 working on a Solaris 8 system that wasn't actually connected to any sort of IPv6 network. I just needed IPv6 working on the loopback interface, and didn't want to go through the full IPv6 configuration. This turned out to be very simple once I figured it out, but for some reason I had a horrible time finding the details that I needed.

Running the following commands as root got the IPv6 loopback interface up enough to do testing:

    ifconfig lo0 inet6 plumb
    route add -inet6 ::1/128 localhost
    ifconfig lo0 inet6 up

You can test this by using telnet. Try running:

    /usr/bin/telnet ::1 99999

You should get a connection refused error (since inetd isn't listening to the new IPv6 address) rather than some other error about having no route to the host or an inability to assign an address.

[Sept 20, 2006] Tom Patterson on Federal News Radio's The Federal Drive with Mike Causey & Jane Norris (MP3)

9/20/2006: Command Information CEO, Tom Patterson discusses the real benefits of IPv6 on Federal News Radio's The Federal Drive with Mike Causey and Jane Norris.

[Sept 13, 2006] Command Education Center Grand Opening (QuickTime)

Command Information launched America's first dedicated IPv6 training center on September 13, 2006. This :60 second clip contains event footage, including the ribbon cutting.

[Sept 13, 2006] Microsoft Vista Collaboration (Windows Media Video)

With Vista comes some very innovative and exciting peer to peer technologies accompanying a completely re-written network stack. There are some really cool scenarios for peer to peer applications that can be developed on top of the Collaboration framework. Check out this great conversation with Noah Horton, Collaboration program manager and others.

[Sept 7, 2006] ICANN ICANN Ratifies Global Policy for Allocation of IPv6 Addresses

At its September 7, 2006 Meeting the Board of ICANN ratified a global policy for the allocation of IPv6 addresses by the Internet Assigned Numbers Authority (IANA) to Regional Internet Registries.

IPv6 is the next generation Internet Protocol (IP) addressing scheme. Internet protocol addresses are the unique numerical identifiers used to identify each computer on the Internet, so that Internet data is transmitted to the correct destination. The introduction of IPv6 has greatly expanded the number of IP addresses available for the world to use.

"This is an outcome which provides certainty to Internet Registries and their customers who include Internet Service Providers and users" said Dr Paul Twomey, President and CEO of ICANN.

"It addresses concerns about the method for future allocations of Internet address space and ensures projected demand can be met for many years to come", he said.

ICANN is responsible for IANA, which coordinates the world-wide IP address space.

"This was developed through the ICANN community's bottom up consensus approach which saw IPV6 adopted as a policy development process. That means ICANN's stakeholders and constituencies have shaped this policy from day one" Dr Twomey said.

"On behalf of the Board I congratulate all those that worked for this outcome" he said.

Proposed Global Policy for Allocation of IPv6 Address Space

[Jul 22, 2006] IPv6 Forum Driving IPv6 Deployment

IPv6 Security Technology Paper
Version 1.0 July 22, 2006 Primary
Author/Editor: Merike Kaeo
Contributing Authors: David Green, Jim Bound,Yanick Pouffary

As IPv6 networks migrate from lab environments into dependable production systems, we are presented with both the challenge of adapting our Information Assurance (IA) architecture to a new protocol and the opportunity to leverage new features to enhance network security. Native
IPv6 networks will coexist with environments where IPv6 capabilities are introduced into production networks with existing IPv4-based infrastructures. While security of our current production networks must be evolved for IPv6, there are features in IPv6 and new trends in networking
that should lead us to changing security paradigms. End-to-end security between hosts has had limited practicality in IPv4-based networks but is a key feature of IPv6. A return to the end-to-end network model should be architected into any dual stacked transition architecture with careful
consideration for not compromising IPv4 security.
This white paper will enumerate the security advantages which are relevant in today's IPv6 networks and will detail the deployment considerations to effectively design and architect secure IPv6 networks. Please download it
from here: NAv6TF_Security_Report.pdf

IP Next Generation Overview by Robert M. Hinden

May 14, 1995
This paper presents an overview of the Next Generation Internet Protocol (IPng). IPng was recommended by the IPng Area Directors of the Internet Engineering Task Force at the Toronto IETF meeting on July 25, 1994, and documented in RFC 1752, "The Recommendation for the IP Next Generation Protocol" [1]. The recommendation was approved by the Internet Engineering Steering Group on November 17, 1994 and made a Proposed Standard.

The formal name of this protocol is IPv6 (where the "6" refers to it being assigned version number 6). The current version of the Internet Protocol is version 4 (referred to as IPv4). This overview is intended to give the reader an overview of the IPng protocol. For more detailed information the reader should consult the documents listed in the reference section.

IPng is a new version of IP which is designed to be an evolutionary step from IPv4. It is a natural increment to IPv4. It can be installed as a normal software upgrade in internet devices and is interoperable with the current IPv4. Its deployment strategy was designed to not have any "flag" days. IPng is designed to run well on high performance networks (e.g., ATM) and at the same time is still efficient for low bandwidth networks (e.g., wireless). In addition, it provides a platform for new internet functionality that will be required in the near future.

This paper describes the work of IETF IPng working group. Several individuals deserve specific recognition. These include Paul Francis, Bob Gilligan, Dave Crocker, Ran Atkinson, Jim Bound, Ross Callon, Bill Fink, Ramesh Govindan, Christian Huitema, Erik Nordmark, Tony Li, Dave Katz, Yakov Rekhter, Bill Simpson, and Sue Thompson.

IP Version 6 (IPv6)

This set of Web pages provides information of Internet Protocol Version 6 (IPv6). IPv6 is sometimes also called the Next Generation Internet Protocol or IPng. IPv6 was recommended by the IPng Area Directors of the Internet Engineering Task Force at the Toronto IETF meeting on July 25, 1994 in RFC 1752, The Recommendation for the IP Next Generation Protocol . The recommendation was approved by the Internet Engineering Steering Group and made a Proposed Standard on November 17, 1994.

IPv6 Resource Centre -- UK

Recommended Links

Google matched content

Softpanorama Recommended

Top articles


IPv6 on Solaris

IPv6 Administration Guide

IPv6 - Wikipedia, the free encyclopedia

Google Directory - Computers Internet Protocols IP IPv6

Open Directory - Computers Internet Protocols IP IPv6

IPv6 The Next Generation Internet!

JOIN Homepage -- IPv6 documents

IPv6 Intro Page

See also chapter 6 in IBM Redbook(above) and Recommended Books


IPv6 for FreeBSD

IPv6 for Linux

IPv6 for NetBSD

RFC 2292 - Advanced Sockets API for IPv6
Freenet6 server delivers IPv6 connectivity for end stations using IPv6 over IPv4 tunnels. Computers connected to Internet can use this free service to get connected on the 6Bone. IP Next Generation (IPng) Working Group Home Page 6bone Home Page 6ren Home Page Technology channel on for IPv6 Russian National IPv6 Forum European Institute for Research and Strategic Studies in Telecommunications A world-wide consortium of leading Internet vendors, Research & Education Networks. IPv6 News & Links

Recommended Papers

Overview of the Solaris IPv6 Implementation

IPv6 on Solaris

IPv6 Administration Guide

[PDF] Sun & IPv6

[PDF] SOLARIS 9 Operating Environment IPv6 Capabilities

[PDF] IPv6 in Solaris 8

IPv6 Support in Trusted Solaris 8 -- Introduction to IPv6

Supporting IPv6 on a Linux Server Node Linux Journal

IBM developerWorks - Discover Internet Protocol, version 6 (IPv6)

Understanding IP Addressing Everything You Ever Wanted To Know Detailed explanation of IPv4/6 implementation.

Linux IPv6 HOWTO


Internet Engineering Task Force P. Savola Internet Draft CSC/FUNET ...


JOIN Homepage -- IPv6 documents


Q1: Which two are legitimate types of IPv6 address? (Choose two.)

  1. Anycast
  2. Broadcast
  3. Multicast
  4. Simulcast

Q2: Which daemon is responsible for distributing IPv6 network prefixes to IPv6 clients on a network?

  1. in.ndpd
  2. in.ripngd



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: September 12, 2017