Administering Networking OS — Open Source App and Licenses #2
College Online Material
The Many Faces of Linux
Linux Plays Many Roles
- The server is usually unattended and handles data on behalf of other machines, e.g. file servers, web servers, and mail servers
- Desktop a.k.a. clients are more interactive, often graphical
- Mobile is tablet or phone
- Development is much like a desktop but with more capacity for dev.
Web Servers
Server static web pages to clients via HTTP can also serve dynamic content by adding PHP, Java, Ruby, Python, etc.
Apache, Nginx is the most popular web servers (65% all over the world).
Mail Servers
- MTA (Mail Transfer Agents) — move email between sites, e.g. Sendmail, Postfix
- MDA (Mail Delivery Agents) — deliver email to a user’s mailbox, e.g. Procmail or custom software
- POP/IMAP — servers let clients download mail, e.g. Dovecot, Cyrus
File Transfer
- NFS (Network File Sharing) — is the native UNIX file sharing protocol
- Samba — allow UNIX machine to emulate a Windows client and server
- Netatalk — allow a UNIX machine to emulate an Apple file server
Infrastructure
- ISC bind is a DNS server. Resolves name to addresses and more
- OpenLDAP (like AD on Windows server) is a LDAP server for directory information
- ISC DHCP configure dynamic clients through the DHCP
Databases
- MySQL and PostgreSQL are relational database servers
- Database server store and report on structured data
- SQL is a language used to query a relational database
Graphical Desktop
- X-Windows is the base graphical system, e.g. X11, X.org
- WIndows managers add menus and window management (open, close, hide, etc.)
- Desktop environments provide window managers and tools
Window Managers
- Compiz, FVMW, Enlightenment, Metacity
- Takes the basic windows and provides the chrome to move, close, open, etc
- Switches focus between running app
- Adds menus and app launchers
Desktop Environment
- KDE, GNOME, Unity. Cinnamon, Mate, XFCE,
- Window Manager + tools, e.g. File manager, calculator, games, notepad, etc
Office/Productivity
- LibreOffice is a fork of OpenOffice
- Include word processor, spreadsheet, presentation package, and drawing tool
- Good compatibility with MS Office (i think it’s not)
Web and Email
- Chromium and Firefox are popular open-source browser
- Thunderbird, Evolution, and KMail are popular email client (use POP/IMAP to retrieve email)
Console Tools
- The shell is the primary way of interacting with the system, e.g. Bash, C Shell, K Shell, Z Shell
- Text editors, e.g. Vim, Nano, Gedit, Emacs, etc
Development
- Language is either compiled, e.g. C, C++, Java
- Language is either interpreted, e.g. PHP, Perl, Ruby, Python
- The tradeoff of programmer productivity vs computing resources
- Libraries bundle common behavior to reduce the amount of code needed
Open Source Licensing
Software Licenses
- The creator of the software owns the copyright to the software
- The creator grants a software license for people to use the software
Free Software Foundation
Started by Richard Stallman 1985 also run the GNU project that provides tools to Linux and other UNIX OS.
GPLv2 and GPLv3 licenses allow you to modify and redistribute the software. Copyleft provision dictated that you must share source code to your changes.
GPL
GPL is a popular free software license and is viral as changes must also use GPL. But, LGPL lets you link non-GPL libraries.
GPL3 prevents “Tivoization” using proprietary hardware to circumvent GPL provisions. You may charge a nominal fee to cover your cost of dist.
Open Source Initiative
- Bruce Perens and Eric Raymond started the OSI in 1998
- Copyleft clauses are too extreme, FSF was too political
- OSI doesn't make licenses, only endorses them
- FSF license is OSI approved, but OSI license isn’t necessarily FSF approved
Permissive Free Software
An OSI license must allow the source to be open, to be modified, redistributed, and used by anyone for any purpose.
BSD and MIT license allows you to use and redistribute the software, or to keep your changes private and use it in proprietary software.
Making money with Open Source
- Sell services, support, and warranty
- Work on features in exchange for money
- Use Open Source in your day job/consulting
- Use work time to fix/improve Open Source
- Build paid plugins/modules
- Open Source work lends credibility to your personal brand