Softpanorama

Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)

AIX Logical Volume Manager

News

See also

Redbooks Recommended Links LVM Tasks Command Summary Reference
what disks are in the root volume group How many disks are on the system Create a volume group Add a disk to the root volume group Make sure the disks are in an active state Mirror the logical volumes Create the boot image on the new disk
JFS mksysb Command Aix JFS2 snapshots Tips History Humor Etc

LVM stands for Logical Volume Manager and JFS is a Journaled File System.

The role of LVM is to present a simple logical view of underlying physical storage space, ie. harddrive(s). LVM manages individual physical disks - or to be more precise, the individual partitions present on them (for a short glossary of terms, look at the end of the article). LVM hides the numbers, size and location of physical partitions from users. Instead it presents the concept of logical volume. A logical volume may correspond to a physical partition (but that obviously almost defeats the purpose of LVM) but it doesn't have to. One volume may be composed of several partitions located on multiple physical disks. Not only that, the volumes can even be extended (not shrunk - people usually want more space, not less). They can even be extended while the OS is running and the filesystem is being accessed! Of course, most home and SOHO users don't have the hardware required for this.

The more experienced readers are now probably wondering how 'traditional' file systems like FAT or HPFS could be extended at runtime. The answer is, they can't. To take full advantage of LVM, it is necessary to use a filesystem designed for it.  JFS is not really tied to LVM, both LVM and JFS can exist separately, but only when working in concert both can reach their full potential.

Physical View of the LVM

The following is a list of the common features in the LVM and VxVM methods of storage management:

Both VxVM and LVM enable file systems to be expanded while the file system is mounted and in use. Both volume managers are tied closely to specific file systems. VxVM only works with the Veritas File System, and LVM only works with the JFS or JFS2 (enhanced JFS) file system found on AIX. The one difference between VxVM and LVM is the philosophy on the concept of file system shrinkage. LVM/JFS/JFS2 does not allow the user the ability to shrink the file system. The reasoning behind this is that sometimes portions of files are spread out over the file system for performance reasons. And when a file system needs to be shrunk, the file system must go out and gather up the "pieces" of a file and relocate them to a portion of the file system that will not be eliminated. This method is time-consuming and not very efficient for performance. Thus on AIX, file system reduction is not permitted on JFS and JFS2.

VxVM takes a different approach to this. It does allow the reduction of a file system size, but it is very simplistic and has drawbacks. They literally "chop" off the end of the logical volume and file system up to the point where the user wants the file system reduced. Warnings are included in the VxVM product regarding this practice; if the user has data at the end of the file system, the data may be corrupted or lost. Thus, for the purposes of this paper, the ability of VxVM to reduce file system size is considered limited.

Terminology

Big Picture View of the LVM

Advantages:

Limitations:

General Approach:

Filesystems

Command Summary

Command Definition
chfs -a size=<#512 byte blocks> <file system>
Increases the size of a journaled file system to the total number of  512 byte blocks specified
chfs -a size=<+512 byte blocks> <mount point> Increases the size of a journaled file system by the addional number of 512 byte blocks specified.  For example "chfs -a size=+393216 /usr"
chlv -n <newname> <oldname> Change the name of a logical volume (it must be inactive)
crfs -v jfs -m <mount point> -g <volume group> -a size=<# of 512 byte blocks>

crfs -v jfs -m <mount point> -d <logical volume> 
This command makes a logical volume, mount point with a journaled file system:


creates a jfs file system on a logical volume
df -k
Shows the disk usage of logical volumes on the server.
exportvg <volume group> 
removes a volume group from a machine
extendvg <volume group> <physical volume> Adds a new physical volume to an existing volume group
importvg -y <volume group> <physical volume> 
add a volume group to another machine
lslv <logical volume> [-l, m]
Lists information about the logical volumes.  The -l option lists the disks in the logical volume.
lspv <physical volume> [-l, M, p]
Lists the disks on the server, including the physical volume will give details about that disk.  The -l option will list the details of how the filesystems are distributed on the disk.
lsvg <volume group> [-l]
Lists the volume groups on the server, including the volume group name will give details about that vg. The -l option will list the logical volumes in the volume group.
lsvpcfg
Lists each vpath and the hdisks that make up the vpath
mklv -y <new lv> <vg> Makes a logical volume in a volume group
mksysb -l -f <device>  
makes a bootable backup of rootvg
mkvg -y <volume group> <physical volume>  . . . <physical volume> Makes a volume group out of one or more physical volumes
mount <logical volume> <file system>   or
mount <filesystem>  if it is already in /etc/filesystems
Mounts the file system for use.
reducevg <volume group> <physical volume> Removes a physical volume from a volume group
rmfs <file system>  
removes a file system and it's logical volume
rmlv <lv> Removes a logical volume (it must be inactive)
savevg -l -f <device> <volume group> 
makes a backup copy of another volume group
umount <file system>  dismount the file system
Unmounts the filesystem.

 

Example: Adding a Disk

  1. Physically attach the disk to the system. Make sure there are no SCSI ID conflicts.
  2. Run cfgmgr to detect new device. Device will be installed as hdiskn, where n is some integer.
  3. Run extendvg vgname hdiskn to add the disk to a VG named vgname.
  4. To create a new filesystem on this VG, use crfs -v jfs -g vgname -A yes -a size=262144. (Note that the size parameter indicates the number of 512-byte blocks, so 262144 means 128MB.)
  5. To add 128MB to an existing filesystem on this VG, use chfs -a size=+262144 /filesystem/name.

Filesystem Procedures

Procedure to create a filesystem using JFS:

Procedure to extend the size of filesystem using JFS:
  1. "df" to see the filesystem, it's current size, % utilization and the name of it's logical volume
  2. "lslv <logical_volume>" to show information about the logical volume including it's volume group name.
  3. "lsvg <volume_group>" to show information about the volume group, including number of free pp's and the pp size
  4. If there are not enough free pp's then see below for procedure to add a disk to a volume group.
  5. "chfs -a size= +4194304 <MOUNT_POINT>" to grow the filesystem by 2 GB (4194304=2*1024*1024*1024/512)
  6. df" shows the file system's current size is 2 GB more than before.
Troubleshooting extending the size of a filesystem using JFS:
Procedure to remove a file system
  1. Unmount the filesystem
  2. Remove the logical volume "rmlv <lv_name>"
  3. Remove the filesystem information from /etc/filesystems
Procedure to reduce the size of a file system - shareold is 8mb and needs to be reduced to 4mb
  1. Create the file system
    1. crfs -v jfs -m /usr/sharenew -g rootvg -a size=8192
    2. this makes a logical volume in the root volume group of 4MB that uses jfs
  2. Mount the volume
    1. mount /usr/sharenew
  3. Move the files from the old file system (/usr/shareold)
    1. cd /usr/shareold
    2. tar cf - | (cd /usr/sharenew; tar xvf -)
    3. cd
  4. Unmount the file systems
    1. umount /usr/sharenew
    2. umount /usr/shareold
  5. Remove the old file system and it's logical volume
    1. rmfs /usr/shareold
  6.   
    1. chfs -m /usr/shareold /usr/sharenew
  7. Mount the new filesystem
    1. mount /usr/shareold
  8. Delete the temporary mount point
    1. rmdir /usr/share

Logical Volume Procedures

Procedure to create a logical volume and filesystem in a volume group using JFS:
  1. lsvg to determine the size of the PP
  2. lslv in similar logical volumes to determine if mirroring is in effect
  3. Calculate the number of PPs needed for the logical volume
    1. bc
    2. scale=2
    3. <size of lv in MB>/<size of PP in MB>
    4. quit
  4. mklv -y  "<LV_NAME>" <VG_NAME> <# of LPS>  --> creates the logical volume
  5. crfs -v jfs -d <LV_NAME> -m /<MOUNTPOINT> -A yes   --> makes the filesystem, creates the mountpoint and puts it in /etc/filesystems
  6. mount /<MOUNTPOINT>  --> mounts the new fileystem
  7. df /<MOUNTPOINT>  --> verifies the mount and the size of the new filesystem
  8. Check the ownership and permissions of the new mount point
  9. If mirroring is in effect, then mirror this logical volume to another disk (original and 1 mirror):

Check to see if  all of the logical volumes in a volume group are mirrored

Mirror a logical volume after the fact


Volume Group Procedures

Procedure to create a volume group:
  1. lsdev -C -c disk  -> lists available disks (and the hdisk#) on the server
  2. mkvg -y "<VG_NAME>" hdisk#  --> creates the volume group on the named hard disk
  3. varyonvg <VG_NAME>  --> activates the volume group
Procedure to add a disk to a volume group (extend the volume group)

Procedure to mirror the rootvg:
  1. lspv  --> determine the hdisk#
  2. extendvg rootvg hdisk<number>  --> add the hdisk to the volume group
  3. lspv  -->  verify that the hdisk has been successfully added to the volume group
  4. chvg -Q 'n' rootvg  -->  change the quorum so that the vg will stay active if one of the mirrors fail
  5. mirrorvg -S -c 2 rootvg  --> mirror all of the logical volumes in the volume group
  6. lsvg -l rootvg  --> verify successful mirroring (pps will appear "stale" until synchronization is complete).
  7. bosboot -a  -->  update the boot image information
  8. bootlist -m normal -o hdisk0 hdisk1  --> create a new bootlist
  9. bootlist -m normal -o  --> verify the bootlist is correct
Procedure to increase the number of LP's available
Assume we receive an error that the maximum number of LP's had been exceeded, and the maximum number of LP's defined was 1100:
  1. "lsvg <volume_group>" to show the total PP's available in the volume group =1250
  2. "lsvg -l <volume_group>" to show the total PP's used in all logical volumes in that volume group (showed sys1log, the jfs log was using 2 PP's)
  3. "chlv -x 1248 <logical_volume>" to change the maximum number of LP's from 1100 to 1248 (1250 PP's in the volume group - 2 PP's used by the jfs log  = 1248 available)

Physical Disk Procedures

Procedure to find disks/vpaths that are unallocated Procedure to make a new lun available to AIX Procedure to list the PVs in a volume group:

 


Top Visited
Switchboard
Latest
Past week
Past month

NEWS CONTENTS

Old News ;-)

[Apr 20, 2009] AIX Support Tips

File system - allocate more space

[Apr 15, 2009] [PDF] Logical Volume Manager Basics

Good SHARE presentation

[Apr 14, 2009] IBM developerWorks Wikis - AIX - LVM

Logical Volumes striping

Using LVM commands (with smit)

If the command changes the VG, PV or LV then the VG is locked i.e. one command at a time.
This is needed to allow recovery of the change - if the system fails during the update.

Creating Stripes Tips:

LVM Create Mirrors

There are three ways to create a mirror:

  1. One Step = create LV with mirror
    • These can be slow as you can have to wait until mirror complete before creating next lv
  2. Create LV and later add mirror synchronise=yes
    • again slow as you can have to wait for silvering
      #Create LV and later add mirror synchronise=no and then sychronise all mirrors together
    • Use this when creating lots of lv because all mirrors can be created at the same time

So (with smit)

  1. create lv's
  2. add mirrors sync=no
  3. syncvg -l <lvname>
    to remove "stale" partitions = resilver
    Warning:

LVM Higher Level Management Commands

Disown disks ready to connect them to another system

Activate newly attached disks

Moving LVs

migratelv (not striped)

LVM rootvg good practice

Small rootvg - 1 or 2 disks (for mksysb backup)
Mirror rootvg for AIX disk protection

TIP: This command will show you formatted list of active Volume groups

for i in $(lsvg -o);do lsvg $i;done \
| awk ' BEGIN { printf("%-10s\t%10s\t%10s\t%10s\t%10s\n","VG","Total(MB)","Free","USED","Disks") };/VOLUME GROUP:/ \
{ printf("%-10s\t", $3) };/TOTAL PP/ { B=index($0,"(") + 1;E=index($0," megaby");D=E-B;printf("%10s\t", substr($0,B,D) );};/FREE PP/ \
{ B=index($0,"(") + 1;E=index($0," megaby");D=E-B;printf("%10s\t", substr($0,B,D) );};/USED PP/ \
{ B=index($0,"(") + 1;E=index($0," megaby");D=E-B;printf("%10s\t", substr($0,B,D) );};/ACTIVE PV/ { printf("%10s\t\n", $3) } '
 

Put other disks into other volume groups

AVOIDING Disk Crashes

  1. Rule One: RAID5 or mirror everything
  2. Rule Two: monitor error logs. Make sure you know when a disk failed
  3. Rule Three: call hardware support. That is what they are for
  4. Rule Four: Don't meddle. Only try, if you know what you are doing
  5. Rule Five: Read and practise. Get the Redbooks and try it safely

Recommended Links

Logical Volume Manager (LVM) Commands for AIX

http://www.networktechnologist.com/tips-aix-lvm.html
http://web.utanet.at/mario/exam/5129fm.htm#tocbrvH1 - old (AIX 4.3 but good description) http://www.redbooks.ibm.com/redbooks/SG246584/

Chapter 5. Device management

5.1 Overview

5.2.2 Managing device drivers

5.2.3 Configuring a device

5.2.4 Adding a new device to a SCSI bus

5.2.5 Remove a SCSI device

5.3 Device management in AIX 5L Version 5.1

5.3.1 Listing devices

5.3.3 Removing a device

5.3.4 Changing a device

5.4 Quick reference

Chapter 6. Logical Volume Manager and disk management

6.1 Logical volume management overview

6.2 Introducing the logical volume solutions

6.2.1 Solaris Solstice DiskSuite: Introduction

6.2.2 VERITAS Volume Manager: Introduction

6.2.3 AIX 5L Version 5.1 LVM: Introduction

6.3 Working with logical volume manager

6.3.1 Volume groups

6.3.2 Working with logical volumes

6.3.3 Working with physical disks

6.3.4 Additional features: Hotspare disks

6.4 Quick reference

Chapter 7. File system management

7.1 Overview

7.1.1 Solaris file systems types and commands

7.1.2 AIX file systems types and commands

7.2 Formatting and partitioning a disk (Solaris only)

7.3 Creating a file system

7.4 Mounting and unmounting a file system
7.5 Checking file system consistency
7.6 Changing file system attributes
7.7 Removing a file system
7.8 Displaying a file system information
7.8.1 Displaying defined file systems
7.8.2 Displaying the file systems mount table
7.8.3 Displaying the available file system space
7.9 Back up and restore file systems
7.10 File system logging
7.11 Compression and defragmentation (AIX only)
7.11.1 Compressed journaled file system
7.11.2 Defragmentation
7.12 Paging space management
7.12.1 Monitoring paging space resources
7.12.2 Adding and activating a paging space
7.12.3 Changing attributes of a paging space (AIX only)
7.12.4 Removing a paging space
7.13 Quick reference
Chapter 8. Backup and restore

Laurent Vanel, Ronald van der Knaap, Dugald Foreman (2000).

AIX Logical Volume Manager from A to Z: Introduction and Concepts

IBM Redbooks | AIX Logical Volume Manager from A to Z ...

AIX Logical Volume Manager, from A to Z: Introduction and Concepts

Rosetta Stones

Reference

http://www.redbooks.ibm.com/redbooks/SG246584.html

Chapter 6. Logical Volume Manager and disk management 129 Naming conventions for LVM Use Table 6-5 to find out the names that LVM uses for each of its components. Table 6-5 Naming conventions for LVM 6.3 Working with logical volume manager In this section, we will describe the way to list, create, remove, and change characteristics for volume groups, logical volumes, and physical disks. We mainly use VxVM and LVM, because not all the features in these two products are available in Solaris DiskSuite. 6.3.1 Volume groups As defined earlier, a volume group is a collection of physical disks that are related. Let us review the main and most important ways to work with them. Listing a volume group: LVM In AIX 5L Version 5.1, we use lsvg to list a volume group. If you do not specify an option, it will show you all the volume groups defined in the system. Some of its useful flags are: -o Shows only the active volume groups. -p <vg_name> Shows all the physical volumes that belong to the requested volume group (vg_name).

Chapter 6. Logical Volume Manager and disk management

157 r Removes all disks from the pool of hotspare disks for the volume group specified. Synchronization policy Since AIX 5L Version 5.1, there is another option (-s) for the chvg command. It is used to specify the synchronization characteristics. The supported values for this option are: y Automatically attempts to synchronize stale partitions. n Will not attempt to synchronize stale partitions. This is the default value. Here we have some examples for hot spares: # chpv -hy hdisk2 This command marks hdisk2 as a hotspare disk for the volume group to which it belongs. To change the synchronization policy, we use chvg, as shown in the following example. It is highly recommended that you change the synchronization policy to automatic. # chvg -hy -sy apachevg 6.4 Quick reference In both LVM and VxVM, the same task can be done in different ways: AIX LVM tools smitty, Web-based System Manager (GUI), or the command line VxVM 3.2 Tools /opt/VRTSvmsa/bin/vmsa (GUI), vxdiskadm (text based interactive tool), or the command line Table 6-6 on page 158 contains a quick reference for the most used tasks, using command line tools.

Logical Volume Manager (LVM) Commands for AIX

Term Definition
Journaled File System (JFS)
File system that uses a journaled log for faster, more reliable data recovery
Logical Partition (LP)
The LV is made up of LPs. The LP corresponds to 1 or more (in the case of mirroring) PPs.
Logical Volume (LV)
The VG is subdivided into logical volumes and each LV can have a file system on it.
Physical Partition (PP) All physical volumes are subdivided into pps. PPs are all the same size.
Physical Volume (PV)
Disk that is being managed by LVM.
Rootvg
Default volume group created during installation. The vg holds the OS filesystems ( /,/usr, /home, /proc /opt, /tmp, /var and swap space )
Volume Group (VG)
Area of storage that consists of one or more PVs

Command Summary

Command
Definition
chfs -a size=<#512 byte blocks> <file system>
Increases the size of a journaled file system to the total number of 512 byte blocks specified
chfs -a size=<+512 byte blocks> <mount point> Increases the size of a journaled file system by the addional number of 512 byte blocks specified. For example "chfs -a size=+393216 /usr"
chlv -n <newname> <oldname> Change the name of a logical volume (it must be inactive)
crfs -v jfs -m <mount point> -g <volume group> -a size=<# of 512 byte blocks>

crfs -v jfs -m <mount point> -d <logical volume>

This command makes a logical volume, mount point with a journaled file system:


creates a jfs file system on a logical volume

df -k
Shows the disk usage of logical volumes on the server.
exportvg <volume group>
removes a volume group from a machine
extendvg <volume group> <physical volume> Adds a new physical volume to an existing volume group
importvg -y <volume group> <physical volume>
add a volume group to another machine
lslv <logical volume> [-l, m]
Lists information about the logical volumes. The -l option lists the disks in the logical volume.
lspv <physical volume> [-l, M, p]
Lists the disks on the server, including the physical volume will give details about that disk. The -l option will list the details of how the filesystems are distributed on the disk.
lsvg <volume group> [-l]
Lists the volume groups on the server, including the volume group name will give details about that vg. The -l option will list the logical volumes in the volume group.
lsvpcfg
Lists each vpath and the hdisks that make up the vpath
mklv -y <new lv> <vg> Makes a logical volume in a volume group
mksysb -l -f <device>
makes a bootable backup of rootvg
mkvg -y <volume group> <physical volume> . . . <physical volume> Makes a volume group out of one or more physical volumes
mount <logical volume> <file system> or
mount <filesystem> if it is already in /etc/filesystems
Mounts the file system for use.
reducevg <volume group> <physical volume> Removes a physical volume from a volume group
rmfs <file system>
removes a file system and it's logical volume
rmlv <lv> Removes a logical volume (it must be inactive)
savevg -l -f <device> <volume group>
makes a backup copy of another volume group
umount <file system> dismount the file system
Unmounts the filesystem.

Sample LVM Procedures:

Filesystem Procedures

Procedure to create a filesystem using JFS:

Procedure to extend the size of filesystem using JFS:
  1. "df" to see the filesystem, it's current size, % utilization and the name of it's logical volume
  2. "lslv <logical_volume>" to show information about the logical volume including it's volume group name.
  3. "lsvg <volume_group>" to show information about the volume group, including number of free pp's and the pp size
  4. If there are not enough free pp's then see below for procedure to add a disk to a volume group.
  5. "chfs -a size= +4194304 <MOUNT_POINT>" to grow the filesystem by 2 GB (4194304=2*1024*1024*1024/512)
  6. df" shows the file system's current size is 2 GB more than before.
Troubleshooting extending the size of a filesystem using JFS:
Procedure to remove a file system
  1. Unmount the filesystem
  2. Remove the logical volume "rmlv <lv_name>"
  3. Remove the filesystem information from /etc/filesystems
Procedure to reduce the size of a file system - shareold is 8mb and needs to be reduced to 4mb
  1. Create the file system
    1. crfs -v jfs -m /usr/sharenew -g rootvg -a size=8192
    2. this makes a logical volume in the root volume group of 4MB that uses jfs
  2. Mount the volume
    1. mount /usr/sharenew
  3. Move the files from the old file system (/usr/shareold)
    1. cd /usr/shareold
    2. tar cf - | (cd /usr/sharenew; tar xvf -)
    3. cd
  4. Unmount the file systems
    1. umount /usr/sharenew
    2. umount /usr/shareold
  5. Remove the old file system and it's logical volume
    1. rmfs /usr/shareold
    1. chfs -m /usr/shareold /usr/sharenew
  6. Mount the new filesystem
    1. mount /usr/shareold
  7. Delete the temporary mount point
    1. rmdir /usr/share

Logical Volume Procedures

Procedure to create a logical volume and filesystem in a volume group using JFS:
  1. lsvg to determine the size of the PP
  2. lslv in similar logical volumes to determine if mirroring is in effect
  3. Calculate the number of PPs needed for the logical volume
    1. bc
    2. scale=2
    3. <size of lv in MB>/<size of PP in MB>
    4. quit
  4. mklv -y "<LV_NAME>" <VG_NAME> <# of LPS> --> creates the logical volume
  5. crfs -v jfs -d <LV_NAME> -m /<MOUNTPOINT> -A yes --> makes the filesystem, creates the mountpoint and puts it in /etc/filesystems
  6. mount /<MOUNTPOINT> --> mounts the new fileystem
  7. df /<MOUNTPOINT> --> verifies the mount and the size of the new filesystem
  8. Check the ownership and permissions of the new mount point
  9. If mirroring is in effect, then mirror this logical volume to another disk (original and 1 mirror):

Check to see if all of the logical volumes in a volume group are mirrored
Mirror a logical volume after the fact

Volume Group Procedures

Procedure to create a volume group:
  1. lsdev -C -c disk -> lists available disks (and the hdisk#) on the server
  2. mkvg -y "<VG_NAME>" hdisk# --> creates the volume group on the named hard disk
  3. varyonvg <VG_NAME> --> activates the volume group
Procedure to add a disk to a volume group (extend the volume group)

Procedure to mirror the rootvg:
  1. lspv --> determine the hdisk#
  2. extendvg rootvg hdisk<number> --> add the hdisk to the volume group
  3. lspv --> verify that the hdisk has been successfully added to the volume group
  4. chvg -Q 'n' rootvg --> change the quorum so that the vg will stay active if one of the mirrors fail
  5. mirrorvg -S -c 2 rootvg --> mirror all of the logical volumes in the volume group
  6. lsvg -l rootvg --> verify successful mirroring (pps will appear "stale" until synchronization is complete).
  7. bosboot -a --> update the boot image information
  8. bootlist -m normal -o hdisk0 hdisk1 --> create a new bootlist
  9. bootlist -m normal -o --> verify the bootlist is correct
Procedure to increase the number of LP's available
Assume we receive an error that the maximum number of LP's had been exceeded, and the maximum number of LP's defined was 1100:
  1. "lsvg <volume_group>" to show the total PP's available in the volume group =1250
  2. "lsvg -l <volume_group>" to show the total PP's used in all logical volumes in that volume group (showed sys1log, the jfs log was using 2 PP's)
  3. "chlv -x 1248 <logical_volume>" to change the maximum number of LP's from 1100 to 1248 (1250 PP's in the volume group - 2 PP's used by the jfs log = 1248 available)

Physical Disk Procedures

Procedure to find disks/vpaths that are unallocated Procedure to make a new lun available to AIX

Procedure to list the PVs in a volume group:



Etc

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 quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard 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 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


Copyright © 1996-2018 by Dr. Nikolai Bezroukov. www.softpanorama.org 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 softpanorama.org is down you can use the at softpanorama.info

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 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