|
Home | Switchboard | Unix Administration | Red Hat | TCP/IP Networks | Neoliberalism | Toxic Managers |
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and bastardization of classic Unix |
|
Interior vs. Exterior Routing protocols
|
Routing table can be viewed using netstat -r (with host resolution) and netstat- rn (without)
Route command can be used to:
# route add net 192.168.68.0 128.50.1.250 1 -netmask 255.255.255.192
Routing took place at the Internet layer of TCP/IP protocol.
A simple definition of routing is "learning how to get from here to there." (routes are both source and destination dependent; i.e., that knowing how to get there isn't enough, you have to know where you are starting from as well.) In some cases, the term routing is used in a very strict sense to refer only to the process of obtaining and distributing information ("learning"), but not to the process of using that information to actually get from one place to another (for which a different term, forwarding, is reserved). Since it is difficult to grasp the usefulness of information that is acquired but never used, we employ the term routing to refer in general to all the things that are done to discover and advertise paths from here to there and to actually move packets from here to there when necessary.
There are two types of routing: direct and indirect.
When implementing routing Unix kernel:
The ICMP handles control and error messages. ICMP on a router or gateway sends reports of problems to the original source. ICMP also includes an echo request or reply that is used to test whether a destination is reachable or not. The ping command uses this protocol.
ICMP redirects are most commonly used when a host is using default routing. If the router determines a more efficient way to forward the packet, it redirects the datagram using the best route and reports the correct route to the sender.
The sending host's route table is updated with the new information. The drawback to this method of routing is that for every ICMP redirect, there is a separate entry in the sending host's route table. This can lead to a large route table. However, it also ensures that the packets going to all reachable hosts are taking the shortest route.Common ICMP messages:
- Echo request and reply messages from ping command
- Report unreachable destinations
- Control congestion and datagram flow
- Route change requests from gateways to hosts
- Detect circular or excessively long routes
- Clock synchronization and transit time estimation
- Report other problems
A single routing protocol cannot efficiently handle all situations because networks can be connected in many different ways.
An autonomous system (AS) is a collection of networks and routers under a single administrative control. This broad definition was incorporated into the Internet in an attempt to reduce excessively large route tables.
An autonomous system number is a unique 16-bit address that is assigned by the Internet Corporation for Assigned Names and Numbers (ICANN).
An autonomous system's exterior routers maintain route tables by using autonomous system numbers that represent exterior routes because the numbers create unique paths. An autonomous system's interior routers also have interior route entries in their route tables for subnets within the organization.
There are two major types of routing protocols:
Interior routing protocols pass route table information within an autonomous system (AS).T here are to major interior routing protocols:
An exterior routing protocol is a routing protocol that communicates routes between autonomous systems. EGP and the Border Gateway Protocol (BGP) are the two principal protocols that exchange route table information among autonomous systems.
For routers in a variably subnetted network to properly update each other, they must send masks in their routing updates. Without subnet information in the routing updates, routers would have nothing but the address class and their own subnet mask to go on. Only routing protocols that ignore the rules of address class and use classless prefixes work properly with VLSM. Table below lists common classful and classless routing protocols.
Classful Routing Protocols | Classless Routing Protocols |
RIP Version 1 (distance vector) | RIP Version 2 (distance vector) |
IGRP | EIGRP |
EGP (distance vector) | OSPF (link state) |
BGP3 (path vector) | IS-IS (link state) |
BGP4 (path vector) |
Routes are kept is a special table called routing table. The Unix kernel stores it in memory. It contains two types of entries:
Routers advertise the networks that they know about. Other hosts and routers listen to these periodic announcements and update their route table with the most current and correct information. Only those entries calculated to be the best paths to a network destination remain in the route table.
To display the contents of a system's route table without interpreting the names of the systems, use the netstat utility with the -r and -n options:
# netstat -rn Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 10.201.12.0 10.201.13.251 U 1 75150 bge0 10.201.28.0 10.201.29.251 U 1 7964 bge2 224.0.0.0 10.201.13.251 U 1 0 bge0 default 10.201.12.1 UG 1 783447 127.0.0.1 127.0.0.1 UH 5 79619 lo0
Routing table entries:
You can configure a route that does not change or time-out. This type of route is called a static route.
You can use the route utility to define a static direct route. A static route is a route that is not automatically removed by the in.routed process if a more efficient route is identified. The ifconfig utility initially builds the direct route entries when the network interface is configured during system startup. To view the results of the utility, perform the command: netstat -r
The localhost entry in the local routing table is a loopback route to the local host that is created when the pseudo interface is configured.
The route command enables manual manipulation of the route table The syntax of the command is somewhat complicated:
route [-fn] add|delete [net|host|default] destination gateway
With keywords add and delete the default for optional [net|host|default] troika is host.
For example, to add a direct static route between the systems alpha and beta, perform a command similar to the following:
# route add beta alpha
add host beta: gateway alpha
This is equivalent to:
# route add host beta alpha
To delete the route between beta and alpha, perform a command similar to the following:
# route delete beta alpha
delete host beta: gateway alpha
To define a default route using the system sigma , perform a command similar to the following:
# route add default sigma
add net default: gateway sigma
The route utility can also to retrieve information about a specific route. For example, to retrieve information about the default route:
# route get default
route to: default
destination: default
mask: defaultgateway: sigma
interface: hme0
flags: <UP,GATEWAY,DONE,STATIC>recvpipe sendpipe ssthresh rtt,ms rttvar,ms hopcount mtu expire
0 0 0 0 0 0 1500 0
To change the route table, use the change option with the route utility. For example, to change the default route from sigma to gamma, perform a command similar to the following:
# route change default gamma
change net default: gateway gamma
To continuously report any changes to the route table, route lookup misses, or suspected network partitionings, use the monitor option:
# route monitor
got message of size 124
RTM_DELETE: Delete Route: len 124, pid: 633, seq 1, errno 0,
flags:<UP,GATEWAY,DONE,STATIC>
locks: inits:
sockaddrs: <DST,GATEWAY,NETMASK>
192.168.3.0 alphaext 255.255.255.0
To flush (remove) the route table of all gateway entries, use the flush option (only indirect routing table entries would be removed):
# route flush
192.168.9 beta done
two beta done
two alphaext done
default 172.20.4.248 done
you can also flush the route table before any command with -f option:
# route -f add net 192.168.4.0 alphaext
add net 192.168.4.0: gateway alphaext
In case you accidentally deleted mulcast entry you can restore it manually (you can consult the command syntax in the /etc/rc2.d/S72inetsvc startup file). For example to add a route to the multicast address range of 224 through 239, perform the command:
# route add 224.0/4 'uname -n'
To define a route that uses a specific netmask, use the netmask option with the route utility. For example, to add a route to the 192.168.3.0 network that uses a netmask of 255.255.255.224, perform the command:
# route add net 192.168.3.0 deltaext -netmask 255.255.255.224
add net 192.168.3.0: gateway deltaext
More concise way of doing the same would be to specify 192.168.3.0/27 :
# route add net 192.168.3.0/27 deltaext
add net 192.168.3.0/27: gateway deltaext
A default route is a route table entry that allows a host to define default routers to use if no other specific route is available. The default routers must be reliable. There is no need to define every reachable network. All indirectly connected packet destinations go to the default router.
Some disadvantages of default routing are:
A default route is a route table entry that defines the default routers to use if no other specific route is available. Default route entries can be either static entries or dynamic entries. The default routers must be reliable. You do not need to define every reachable network because datagrams that are addressed to non-local destinations use a default router in the absence of an explicit route.
|
Switchboard | ||||
Latest | |||||
Past week | |||||
Past month |
I sent the following to sun-managers, but haven't gotten much help there.
I'm thinking this may be a more generic networking problem, so I'm hoping
one of you might be able to help.I have what seems to be a weird problem with routing that I hope y'all can help
with.I have a Sun Fire V210 running Unix 10 with a recommended patch cluster a
couple of weeks old.It's got 8 interfaces -- the four on board plus a quad gigaswift (ce) card.
I have already installed my Unix 10 Server, I was tryin to implement the routing in the file /etc/init.d/inetsvc (/etc/rc2.d/S98inetsvc) as in Unix 8.!! this file does not exists!!
How install routings in Unix 10 6/06 ??
thanks
=====
And this is why you should never mess with binary / system files but stick to configuration files. Editing rc.d scripts directory is very poor administration.What you should be doing is looking into the routeadm(1M) command for starters. Further good readings are the manual pages for 'ifconfig(1M)' and 'in.routed(1M)'.
Anyone have routing working on Unix 10?
Running S10_72 on a Dell Gx110 w/ 2 NICs. Trying to set it up to replace my Netgear router (and eventually configure IPv6 tunnel). having problems getting it to route packets. I turned off all of my ipfilters for debugging.
2 networks 10.10.1.x and 10.1.1.x no routing daemon, just static routes
Here are the parts of the ifconfig that matter, the output from routeadm and the routing table, along with a ping to hosts on each side and a tcpdump from the input interface elxl0 (the packets to be routed arrive here) the tcpdump on the side the packets should come out is empty (there are DNS packets and the like from the host, but no routed packets). What am I missing here?
elxl0: flags=1100843<UP,BROADCAST,RUNNING,MULTICAST,ROUTER,IPv4>
inet 10.1.1.1 netmask ffffff00 broadcast 10.1.1.255
ether 0:b0:d0:85:e0:b4
iprb0: flags=1104843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,ROUTER,IPv4 >
inet 10.10.1.67 netmask ffffff00 broadcast 10.10.1.255
ether 0:a0:c9:98:1d:6b
# routeadm
Configuration Current Current
Option Configuration System State
------------------------------------------------------------ ---
IPv4 forwarding enabled enabled
IPv4 routing default (disabled) disabled
IPv6 forwarding disabled disabled
IPv6 routing disabled disabled
IPv4 routing daemon "/usr/sbin/in.routed"
IPv4 routing daemon args ""
IPv4 routing daemon stop "kill -TERM `cat /var/tmp/in.routed.pid`"
IPv6 routing daemon "/usr/lib/inet/in.ripngd"
IPv6 routing daemon args "-s"
IPv6 routing daemon stop "kill -TERM `cat /var/tmp/in.ripngd.pid`"
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
10.10.1.0 10.10.1.67 U 1 26 iprb0
10.1.1.0 10.1.1.1 U 1 2 elxl0
224.0.0.0 10.10.1.67 U 1 0 iprb0
default 10.10.1.1 UG 1 1 iprb0
127.0.0.1 127.0.0.1 UH 7 7281 lo0
PING 10.10.1.1: 56 data bytes
64 bytes from 10.10.1.1: icmp_seq=0. time=1.67 ms
----10.10.1.1 PING Statistics----
1 packets transmitted, 1 packets received, 0% packet loss
round-trip (ms) min/avg/max/stddev = 1.54/1.61/1.67/-NaN
PING 10.1.1.2: 56 data bytes
64 bytes from 10.1.1.2: icmp_seq=0. time=0.659 ms
----10.1.1.2 PING Statistics----
1 packets transmitted, 1 packets received, 0% packet loss
round-trip (ms) min/avg/max/stddev = 0.592/0.625/0.659/-NaN
tcpdump -vv -e -i elxl0
15:24:17.414252 00:c0:9f:20:16:a8 > 00:b0:d0:85:e0:b4, ethertype IPv4 (0x0800), length 98: IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 84) 10.1.1.2 > 10.10.1.1: icmp 64: echo request seq 30213
Imagine that you are a courier, and your run always starts at the local courier depot. You're given a list of addresses, which are associated with a set of packages, and your goal is to deliver them in as little time as possible, subject to the following constraints:
- The number of roads you take to deliver each package must be minimized.
- You must avoid deadends and accidents.
- You can only determine which roads to take by consulting a street directory and by crosschecking street names along your path with those in your directory
If this seems like a fairly trivial task for a courier, consider how much more difficult the job would be if the following conditions prevailed:
- The number of possible roads increases exponentially each year. You might be asked to take roads you've never heard of before!
- There is no way of knowing, in advance, where accidents or deadends might occur.
- The street directory you have is completely out of date, because the number of highways increases exponentially each year.
This scenario describes the difficulties faced by the emergence of the Internet and the massive interconnections between hosts and networks. In order for a packet of data to be transferred from host A to host B, a physical path must be identified for the packet to travel.
There is no central lookup service that decides how to route each packet between all possible combinations of two hosts on the Internet (i.e., between the sender and the receiver). This means routes must be generated dynamically. (The only exceptions to this rule are certain situations where a predictable static route may be installed.)
When transferring data around the Internet or between subnets, intermediate hosts must be responsible for transferring packets between networks; these hosts are called routers and are responsible for routing packets between hosts, which can be separated by single subnets or by entire continents. To gain insight into how many routers a packet transfer may involve, let's use the traceroute command to display the "hops" required to connect from a host in Sydney, Australia, to the Sun Microsystems web server:
bash-2.03$ traceroute wwwwseast.usec.sun.com/
Tracing route to wwwseast.usec.sun.com [192.9.49.30]
over a maximum of 30 hops:
1 184 ms 142 ms 138 ms 202.10.4.131
2 147 ms 144 ms 138 ms 202.10.4.129
3 150 ms 142 ms 144 ms 202.10.1.73
4 150 ms 144 ms 141 ms atm11-0-0-11.ia4.optus.net.au [202.139.32.17]
5 148 ms 143 ms 139 ms 202.139.1.197
6 490 ms 489 ms 474 ms hssi9-0-0.sf1.optus.net.au [192.65.89.246]
7 526 ms 480 ms 485 ms g-sfd-br-02-f12-0.gn.cwix.net [207.124.109.57]
8 494 ms 482 ms 485 ms core7-hssi6-0-0.SanFrancisco.cw.net [204.70.10.9]
9 483 ms 489 ms 484 ms corerouter2.SanFrancisco.cw.net [204.70.9.132]
10 557 ms 552 ms 561 ms xcore3.Boston.cw.net [204.70.150.81]
11 566 ms 572 ms 554 ms sun-micro-system.Boston.cw.net [204.70.179.102]
12 577 ms 574 ms 558 ms wwwwseast.usec.sun.com [192.9.49.30]
Trace complete.
Here, we can see that some 12 hosts are required to transfer packets between the sender and the receiver. In addition, the observed response times can be quite slow--often more than half a second. It is possible for attempted connections to time out. This can be very useful when trying to identify which intermediate host and/or network is having problems when your remote connection to a host half a world away suddenly dies!
In this section, we'll examine how Unix solves a number of the classic routing problems.
Static routing typically involves creating a direct physical connection between two hosts, where the implementation of dynamic routing would be wasteful or a security risk. For example, if your local network has three subnets that need to share data, a static route could be created between each router and the other two routers in the network. The number of specific routes required to allow data to flow seamlessly between networks is directly proportional to the square of the number of routers on the network. Every time a change is made to the network topology, these routes will have to be modified manually. If that sounds like too much hard work, consider the situation where it might be desirable: a secure database server that can be accessible only by knowing the route to the host and is not publicly announced. Instead of permitting route discovery, a static route is an appropriate technique here. This could be implemented by creating a point-to-point configuration using ifconfig on a secondary interface, as discussed in the network interface configuration section.
The alternative to static routing is dynamic routing, which involves two daemons: the routing daemon proper (in.routed) and the route discovery daemon (in.rdisc). The in.routed daemon implements the Routing Information Protocol, and is responsible for updating and managing entries in the kernel's routing tables. It uses UDP (port 520) for performing routing operations and operates on all network interfaces that have been plumbed and are identified as up.
If the /etc/notrouter file does not exist, and given that two or more operational interfaces can be found, the host begins to act as a router. Data can then be exchanged between data received on one interface, destined to be transmitted from another interface. For a local area network, the interface that connects to all local hosts is usually known as the internal interface, while the interface that is visible downstream to an ISP or another subnet is known as the external interface. By using packet filtering, it is possible to specify a set of rules governing what type (TCP or UDP) of packets can be transferred between interfaces and on which ports. This is obviously important for protecting local networks, since services that are available to local hosts may not be appropriate for public access.
The route discovery daemon, in.rdisc, implements the Internet Control Message Protocol (ICMP). In terms of route discovery, in.rdisc running on host systems listens for multicast broadcasts on the
224.0.0.1
(ALL_HOSTS) address. These messages are prioritized, and the default router is selected based on its proximity to the host. On routers, in.rdisc broadcasts its availability using multicast on224.0.0.1
, and listens for requests on224.0.0.2
(ALL_ROUTERS). Hosts may request a router directly by broadcasting on224.0.0.2
.
The kernel maintains a table of routes, constructed by the routing daemon, in.routed. The various routes that have been configured are always viewable by checking the routing statistics:
bash-2.03$ netstat -r
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
10.64.18.0 austin U 1 5 eri0
224.0.0.0 austin U 1 0 eri0
localhost localhost UH 25 215051 lo0
Here, we can see there are two network routes available for packets on the primary Ethernet interface eri0: the
10.64.18.0
network and the224.0.0.0
multicast network. In addition, the loopback interface (lo0) has the local host interface, which is commonly used for troubleshooting and testing. These routes are all IPv4; however, IPv6 routing details are also displayed:Routing Table: IPv6
Destination/Mask Gateway Flags Ref Use If
--------------------------- --------------------------- ----- --- ------ -----
fe80::/10 fe80::203:baff:fe04:a4e8 U 1 0 eri0
ff00::/8 fe80::203:baff:fe04:a4e8 U 1 0 eri0
default fe80::203:baff:fe04:a4e8 U 1 0 eri0
localhost localhost UH 5 28 lo0
"Blackhole"/null routing a destination IP address:
route add destination_IP 127.0.0.1 -blackholeNote that this seems to work without the -blackhole flag, and can be used on most Unices.
All network traffic destined to destination_IP will not leave the network interface, as it is given a "next hop" of 127.0.0.1 (localhost). Note that destination_IP can still reach the host, although response traffic will not reach destination_IP, making it appear that communication is broken.
Unix routing with multiple interfaces
In this example, we have an hme2 network interface with an IP address of 65.201.213.117, a network address of 65.201.213.112, and a subnet mask of 255.255.255.240. The interface was initially enabled using the default subnet mask and broadcast address.ifconfig hme2
hme2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 65.201.213.117 netmask ff000000 broadcast 65.255.255.255Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
65.0.0.0 65.201.213.117 U 1 8 hme2
To correct the routing table:1. Specify the correct subnet mask and broadcast address with ifconfig.
ifconfig 65.201.213.117 netmask 255.255.255.240 broadcast 65.201.213.1272. Add an /etc/netmasks entry for the correct netmask to be used after system reboot.
65.201.213.112 255.255.255.240Corrected routing table:
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
65.201.213.112 65.201.213.117 U 1 1 hme2
Vyatta, a San Mateo, Calif.-based start-up is close to releasing an open source router platform, that runs on standard x86 hardware and can perform equally well as some of the more commercial products. Vyatta plans to target the corporate market with its own devices, but anyone can download the software, officially called, the Vyatta Open Flexible Router (OFR), and roll their own … router.
Google matched content |
Understanding
routing for Unix by
Lance Spitzner
(9 March, 2000)
Unix
8 Administrator's Guide Chapter 4 Network Configuration
BigAdmin - Submitted Tech Tip Implementing Persistent Host and Network Routes
on Unix Systems
Unix 8 Administrator's Guide Chapter 4 Network Configuration
Some routing protocols descriptions from Cisco
Classless Interdomain Routing (CIDR) Classless interdomain routing. IP addressing technique supported by BGP4 and based on route aggregation. CIDR allows routers to group routes together to minimize the quantity of routing information carried by the core routers.
Routing Information Protocol (RIP) The Routing Information Protocol (RIP) is a distance-vector protocol that uses hop count as its metric. RIP is widely used for routing traffic in the global Internet and is an interior gateway protocol (IGP), which means that it performs routing within a single autonomous system.
Open Shortest Path First (OSPF) Open Shortest Path First (OSPF) is a routing protocol developed for Internet Protocol (IP) networks by the interior gateway protocol (IGP) working group of the Internet Engineering Task Force (IETF).
Border Gateway Protocol (BGP) BGP performs interdomain routing in Transmission-Control Protocol/Internet Protocol (TCP/IP) networks. BGP is an exterior gateway protocol (EGP), which means that it performs routing between multiple autonomous systems or domains and exchanges routing and reachability information with other BGP systems.
Class Schedule and Reading Assignments (4197)
Lecture Slides and Notes (4197)
EE4074 Spring'97 Network Technology Sites
Index of publiccomputinginternetripelocal-irtraining
The Computer Communication and Applications Course Syllabus
Internet Technology Protocols and Services -- slides in PDF
IPng Mail Archive (IPng 190) Neighbor Discovery slides from WG meeting
ANS Papers and Drafts - Presentation Slides
204421 Computer Networks Class Schedule
Spring 1998 - CS 138c Special Topics in Networking Student Topics
CSc425525 Home Page -- good, contains slides
Cable Modems Myths and Reality
LSU EE 7725-Interconnection Networks-Lecture Transparencies -- something too theoretical
Internet Routing Infrastructure Security (IRIS) -- Internet Routing Infrastructure Security (IRIS) This ARPA-sponsored program is exploring security for advanced Internet routing technology. Specifically, the program is developing security requirements, performing vulnerability analyses, and designing and developing security countermeasures for use with two routing systems. The Inter-Domain Routing Protocol (IDRP) is an ISO exterior routing protocol that will be deployed as a successor to BGP-4 in the Internet. Nimrod is a routing system, under development in the IETF, that unifies interior and exterior routing protocol features. This presentaroach adopted to perform the security requirements analysis portion of this project, and the results of this analysis.
Q1. The ______ command may be used to add or remove routes from the routing table.
a. netstat
b. rdisc
c. rip
d. route
A: d
Syntax:
route [-fn] add|delete [host|net] destination [gateway [metric]]Q2. ______ is a file that contains hostname or IP addresses of one or more routes to the network.
a. /etc/defaultrouter
b. /etc/inet/networks
c. /etc/gateways
d. /etc/hosts
Q3. If there are two IP addresses, or entries in the /etc/gateways file, ______ is enabled and the in.routed(RIP) or in.rdisc (RDISC) processes start.
a. ip_fw
b. ip_forwarding
d. no_ip_forwarding
A: b
Society
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
Quotes
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 quotes : Somerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Bernard Shaw : Mark Twain Quotes
Bulletin:
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
History:
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 DOS : Programming Languages History : PL/1 : Simula 67 : C : History of GCC development : Scripting 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-Month : How 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-2021 by Softpanorama Society. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) 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 to buy a cup of coffee for authors of this site |
Disclaimer:
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 Softpanorama society. 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: March 12, 2019