Linux+: Operating System Intro 07 – Standard Base and Documentation Standard Base The popularity of Linux today is still increasing. With so many different types of Linux Distributions (distros), it is imperative that users can find software which will work on their system no matter the distro they use. Users also need to have access to documentation to assist them with any questions they may have about Linux. In most cases the documentation can be distro independent, but not always. To be sure that applications work on the various distros there is a Linux Standard Base (LSB) to help control that programs are compatible with the distros. The LSB helps software developers be able to design and code applications which will work on all distros, so it is not required to recode the application for each distro. If a new version of a distro is released, such as a major version (for instance Ubuntu 12 to Ubuntu 13), the programmer needs assurances that there will be backwards compatibility. Basically, this means that apps running on older versions of a Linux Operating System (OS) still functions the same on a newer revision. The applications will need to operate in the same exact manner and not have errors occur because of the new OS. NOTE: Backwards compatibility has been a requirement since LSB version 3.0. If you create a program using the LSB 3.0 specifications the application will work on all newer OSs which adhere to the version 3.0 or later specifications. The LSB designates the minimum Application Programming Interfaces (APIs) which each distro must support. The API is a library of routines or functions which are used to produce the desired results in a program. For example, an API can provide functions to the Graphical User Interface (GUI) to show a window with specific information in it such as an Error Message. The appearance of buttons to click with a mouse will be used as needed. The configuration of the OS can change overall colors, fonts and such, but the buttons need to operate in the same manner. NOTE: A lot of abbreviations can be used when looking for APIs. One major abbreviation is Integrated Development Environment (IDE). An IDE is an application which lets a programmer write and test code from within an environment to help find and fix errors. Some IDE environments include: Geany – Almost everything CodeLite – C++ KDevelop – IDE for KDE Anjuta – IDE for GNOME Eclipse - Java The above IDEs can support multiple programming languages. Each one is different so you need to check which one may work best for your needs. Be aware that more IDEs exist than just these. Key specifications for the LSB include the following common requirements: Application Binary Interface (ABI) System Commands Configuration files File placement Shared libraries Shared installation packages NOTE: The ABIs are specific to the architecture of the processor. The ABI varies by the processor and is even different between an Intel 32 and 64-bit processor. The ABI is the reason that if you have a 64 bit Intel processor, you need to compile the code on a 64-bit processor so it supports the underlying ABI. The LSB supports the following platform architectures: Intel IA32 Intel IA64 x86-64/EM64T IBM PPC 32 IBM PPC 64 IBM 31-bit S/390 IBM 64-bit zSeries Documentation With programmers and users alike, there can always be questions about how things work within Linux. Questions can include subjects such as commands, Guides, Frequently Asked Questions (FAQ) and “How To’s” which can be covered by The Linux Documentation Project (TLDP or LDP) found at www.TLDP.org. Many things can be found on the page to help new Linux users as well as advanced users. Guides can range from installation, scripting, administration to security. There is a wealth of information here to provide documentation for all Linux users. For information on specific commands see the web site: http://www.linuxmanpages.com. There are eight categories of commands as follows: 1. General Commands 2. System Calls 3. Subroutines 4. Special files 5. File formats 6. Games 7. Macros and conventions 8. Maintenance commands Once one of these categories is selected, a list will appear of the commands within that category. When one of the commands is selected a detailed summary of the command is given with any parameters, if they exist. If the command is not part of your distro a link is given to where is can be downloaded. Another great source for “How-To’s” and other information is found on the site you are currently on: www.linux.org. If answers cannot be easily found on a regular site you visit you can always use a search engine such as Google to look for it on other sites.