Tonight we are going to discuss the tools/applications which make up the core applications as defined by LFS (Linux From Scratch), and a couple other small distributions.

Next we will look at how the system boots and what happens before the boot prompt.

Lastly, time permitting, we will discuss shell scripts. These scripts and the shell that supports them are what make many of the operations of Linux useful.

Linux From Scratch
Linux From Scratch

Linux From Scratch

Tools for your tool box

After booting your operating system you need for the system to do work. But to do this you need something to run. These executable programs are often referred to as applications. Firefox is one such application. But what to you call an application like ls? I refer to these applications as tools

A programming tool is a program or application that software developers use to create, debug, or maintain other programs and applications. The term usually refers to relatively simple programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object.

The history of software tools began with the first computers in the early 1950s that used linkers, loaders, and control programs. Tools became famous with Unix in the early 1970s with tools like grep, awk and make that were meant to be combined flexibly with pipes.

Tools were originally simple and light weight. As some tools have been maintained, they have been integrated into more powerful integrated development environments (IDEs). These environments can make searching and editing much easier, however they lack the ability to massage code, like old Unix tools.

The distinction between tools and applications is murky. For example, developers use simple databases (such as a file containing list of important values) all the time as tools. However a full-blown database is usually thought of as an application in its own right.

Software development tools - Definition

What are tool types

I could try to come up with my own definition of what programs should be considered tools. But instead I think we should just examine a few lists by other people.

List of Unix programs - Definition by wordiQ.com

3.2. All Packages from the Linux From Scratch book.

List of all commands for the Trinity Rescue Kit version 3.4.

Linux Boot Process

We will discuss how the computer boots, and then how Linux starts up. This is useful to understand what happens when the computer boots.

Inside the Linux boot process from IBM Developer Works.

Linux Startup Process from Wikipedia.

Init Process from Wikipedia.

Linux Init Process / PC Boot Procedure from YoLinux.com.

Shell Scripting Tutorials

Sea Shell
Sea Shell

Shell Scripting

One of the greatest strengths of computers is the ability to give it something to do. Whether it is running an application to pull down news, or calculating the position of the stars, or any of a thousand other things giving a computer tasks is important. So we are going to have a look at a couple of shell scripting tutorials.

This is a good beginners tutorial with lots of examples. It is available at Bash scripting Tutorial

This is also a beginners tutorial, but a bit more advanced. It is in the form of a PDF file on this web site. Linux Shell Scripting Tutorial

For a more advanced tutorial have a look at Linux Shell Scripting Tutorial (LSST) v2.0

Lastly we have a more advanced tutorial at Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting

Everyone can Program

The other day I was reading Wired magazine and I came across an article We’re all Coders Now (captured here as a PDF file). I found the idea interesting. So I did a little looking around and found some interesting ideas.

One place that gave me some ideas was Google Promises To Let Anyone Build Mobile Apps which gives many people access to a programing environment for their smart phones.

So I looked a little further and found a web page detailing where you could Teach a Kid to Program. This is a list of different sites that provide information for parents and educators where to find good programs for beginning coders.

Written by John F. Moore

Last Revised: Wed Oct 18 11:01:32 EDT 2017

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
HTML5 Powered with CSS3 / Styling, and Semantics