top button
Flag Notify
    Connect to us
      Facebook Login
      Site Registration

Facebook Login
Site Registration

BSD (Berkeley Source Distribution) License Definition for Unix, Linux, Windows or Mac

0 votes

The BSD license is a class of extremely simple and very liberal licenses for computer software that was originally developed at the University of California at Berkeley (UCB). It was first used in 1980 for the Berkeley Source Distribution (BSD), also known as BSD UNIX, an enhanced version of the original UNIX operating system that was first written in 1969 by Ken Thompson at Bell Labs.

BSD restrictions can be summarized as:

(1) one should not claim that they wrote the software if they did not write it .
(2) one should not sue the developer if the software does not function as expected or as desired.

Some BSD licenses additionally include a clause that restricts the use of the name of the project (or the names of its contributors) for endorsing or promoting derivative works.

Besides the original license used in BSD, there are several derivative licenses that are commonly referred to as a "BSD license". Today, the typical BSD license is the 3-clause version, which is revised from the original 4-clause version.

Note: In all BSD licences as following, is the organization of the or just the , and is the year of the copyright. As published in BSD, is "Regents of the University of California", and is "University of California, Berkeley".

Examples of BSD-Style Licenses

Below are three examples of BSD-style licenses:
(1) The BSD license as it is used by the FreeBSD operating system.
(2) A BSD license as it is used by Sudo (a free utility program for Unix-like operating systems).
(3) A template of a BSD-style license that can be applied to any appropriate project.

Proprietary software licenses compatibility:
The BSD License allows proprietary use and allows the software released under the license to be incorporated into proprietary products. Works based on the material may be released under a proprietary license as closed source software

BSD Licenses Versus the GPL

The GPL (GNU General Public License) is by far the most widely used license for free software (i.e., software whose source code is available at no cost for anyone to use for any purpose). The Linux kernel (i.e., the core of the operating system) as well as much of the other software generally included in Linux distributions have been released under the terms of the GPL.

Although far fewer programs are released under BSD-style licenses, this class of licenses is disproportionately important because of the widespread use of BSD-licensed code in both free and proprietary operating systems.

Possibly the biggest difference between the GPL and BSD licenses is the fact that the former is a copyleft license and the latter is not. Copyleft is the application of copyright law to permit the free creation of derivative works but requiring that such works be redistributable under the same terms (i.e., the same license) as the original work.

posted Aug 4, 2014 by Amit Kumar Pandey

  Promote This Article
Facebook Share Button Twitter Share Button LinkedIn Share Button

Related Articles

What is Inode 

In Unix or Linux file system file internal representation is called inode or index node.  An inode structure is an object in the file structure on a file system except the file contents and the file name and used to track the file(s) stored on the disk. The inode entries store metadata about each file, directory or object, but only points to these structures rather than storing the data.

What are the contents of Inode structure

  1. Inode number
  2. Access Control List (ACL)
  3. Extended attribute
  4. Direct/indirect disk blocks
  5. Number of blocks
  6. File access, change and modification time
  7. File deletion time
  8. File generation number
  9. File size
  10. File type
  11. Group
  12. Number of links
  13. Owner
  14. Permissions
  15. Status flags

 What is the catch 

There is no entry for file name in the Inode, rather the file name is kept as a separate entry parallel to Inode number. The reason for separating out file name from the other information related to same file is for maintaining hard-links to files. This means that once all the other information is separated out from the file name then we can have various file names which point to same Inode.

How to get the inode number of a file

[ec2-user@ip-172-31-42-140 ~]$ ls -il
total 130816
 13144 -rw-rw-r--  1 ec2-user ec2-user       30 May 25 08:49 1.c
 13136 -rw-rw-r--  1 ec2-user ec2-user   294241 Jan 26 14:04 a
   352 -rw-rw-r--  1 ec2-user ec2-user 57295640 Aug 31  2014 abc.tar.gz
 13139 -rw-rw-r--  1 ec2-user ec2-user      801 Feb 26 08:17 a.c
   368 -rwxrwxr-x  1 ec2-user ec2-user     6899 Feb 26 08:17 a.out
   369 -rw-rw-r--  1 ec2-user ec2-user      488 Dec 18  2013 apply-button.png
   370 -rw-rw-r--  1 ec2-user ec2-user      137 Dec 23  2013
   371 -rwxrwxr-x  1 ec2-user ec2-user    10140 Mar  8  2014 b
   372 drwxr-xr-x  1 ec2-user ec2-user      598 Aug  5  2014 xxx

The number on the far left is the inode number associated with the file. Also notice that there is a directory “xxx” that also has an inode associated with it. Each time a file or directory is created or deleted, an inode is created or deleted.

Inode Pointer Structure

According to the wikipedia, the structure used to have 11 or 13 pointers but most modern file systems use 15 pointers stored in the data structure. From wikipedia, for the case where there are 12 pointers in the data structure, the pointers are:

  • Twelve points that directly point to blocks containing the data for the file. These are called direct pointers.
  • One single indirect pointer. This pointer points to a block of pointers that point to blocks containing the data for the file.
  • One doubly indirect pointer. This pointer points to a block of pointers that point to other blocks of pointers that point to blocks containing the data for the file.
  • One triply indirect pointer. This pointer points to a block of pointers that point other blocks of pointers that point to other blocks of pointers that point to blocks containing the data for the file.

To make things easier, Figure below from wikipedia, shows these different types of pointers.

In the figure you can see the direct, indirect, and doubly indirect pointers. A triply indirect pointer is similar to the doubly indirect pointer with another level of pointers between the data blocks and the inode.

Contact Us
+91 9880187415
#280, 3rd floor, 5th Main
6th Sector, HSR Layout
Karnataka INDIA.