READS DAY 1¶
Shells, kernels and operating systems¶
In computing, a shell is a computer program which exposes an operating system’s services to a human user or other program. In general, operating system shells use either a command-line interface (CLI) or graphical user interface (GUI), depending on a computer’s role and particular operation. It is named a shell because it is the outermost layer around the operating system.
Command-line shells require the user to be familiar with commands and their calling syntax, and to understand concepts about the shell-specific scripting language (for example, bash).
Graphical shells place a low burden on beginning computer users, and are characterized as being easy to use. Since they also come with certain disadvantages, most GUI-enabled operating systems also provide CLI shells.Shell(Computing)
The main difference between kernel and shell is that the kernel is the core of the operating system that controls all the tasks of the system while the shell is the interface that allows the users to communicate with the kernel.Difference between kernel and shell
File system (fs)¶
In computing, a file system or filesystem (often abbreviated to fs) controls how data is stored and retrieved. Without a file system, data placed in a storage medium would be one large body of data with no way to tell where one piece of data stops and the next begins.File system
Bash is a command processor that typically runs in a text window where the user types commands that cause actions. Bash can also read and execute commands from a file, called a shell script. Like all Unix shells, it supports filename globbing (wildcard matching), piping, here documents, command substitution, variables, and control structures for condition-testing and iteration.Bash Unix Shell
Unix systems are characterized by a modular design that is sometimes called the “Unix philosophy”. According to this philosophy, the operating system should provide a set of simple tools, each of which performs a limited, well-defined function. A unified filesystem (the Unix filesystem) and an inter-process communication mechanism known as “pipes” serve as the main means of communication, and a shell scripting and command language (the Unix shell) is used to combine the tools to perform complex workflows.Unix
Command Line Interface (CLI)¶
A command-line interface (CLI) processes commands to a computer program in the form of lines of text. The program which handles the interface is called a command-line interpreter or command-line processor. Operating systems implement a command-line interface in a shell for interactive access to operating system functions or services.Command Line Interfaces
Variable: A named value, that potentially can be changed as the program runs Variable name: A label for a memory location Data: Information processed or stored by a computer Storage: A place where data can be stored Program: A computer program is a set of instructions to perform a task on a computer Reference: A pointer to a variable or object Declaration: Announcing a variable (usually) at the beginning of a program Naming convention: A set of rules about the names of variables Value: The something that would be stored in a variable Assignment: Giving (setting) a variable a value
The python ecosystem¶
Python is an interpreted, high-level and general-purpose programming language. Python’s design philosophy emphasizes code readability with its notable use of significant indentation. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects.Python.
Scientific computing tools for Python. The SciPy ecosystem, a collection of open source software for scientific computing in Python.SciPy.org
Project Jupyter is a project and community whose goal is to “develop open-source software, open-standards, and services for interactive computing across dozens of programming languages”.Project Jupyter
Jupyter notebook application¶
Jupyter Notebook (formerly IPython Notebooks) is a web-based interactive computational environment for creating Jupyter notebook documents.This application is a rich interactive interface, letting you quickly process data and test ideas.Project Jupyter
Jupyter notebook (the document)¶
A Jupyter Notebook document is a JSON document, following a versioned schema, containing an ordered list of input/output cells which can contain code, text (using Markdown), mathematics, plots and rich media, usually ending with the “.ipynb” extension.Project Jupyter