- https://en.wikipedia.org/wiki/Operating_system
- system software that manages computer hardware, software resources, and provides common services for computer programs
- time-sharing operating systems schedule tasks for efficient use of the system
- for hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware
- operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers
- Linux distributions are dominant in the server and supercomputing sectors; other specialized classes of operating systems, such as embedded and real-time systems, exist for many applications
- https://en.wikipedia.org/wiki/Package_manager
- a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner
- deals with packages, distributions of software and data in archive files
- packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum (preferably a cryptographic hash function), and a list of dependencies necessary for the software to run properly
- typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites
- https://en.wikipedia.org/wiki/Source_code
- any collection of code, possibly with comments, written using a human-readable programming language, usually as plain text
- specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code
- often transformed by an assembler or compiler into binary machine code that can be executed by the computer
- alternatively, source code may be interpreted and thus immediately executed
- https://en.wikipedia.org/wiki/Open-source_software
- a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to study, change, and distribute the software to anyone and for any purpose
- open-source software development can bring in diverse perspectives beyond those of a single company
- https://en.wikipedia.org/wiki/Free_software
- computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions
- free software is a matter of liberty, not price: users—individually or in cooperation with computer programmers—are free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program
- computer programs are deemed free if they give users (not just the developer) ultimate control over the software and, subsequently, over their devices
- https://en.wikipedia.org/wiki/Free_and_open-source_software
- software that can be classified as both free software and open-source software
- anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software
- this is in contrast to proprietary software, where the software is under restrictive copyright licensing and the source code is usually hidden from the users
- FOSS maintains the software user's civil liberty rights
- Other benefits of using FOSS can include decreased software costs, increased security and stability, protecting privacy, education, and giving users more control over their own hardware
- free and open-source operating systems such as Linux and descendants of BSD are widely utilized today, powering millions of servers, desktops, smartphones (e.g., Android), and other devices
- https://en.wikipedia.org/wiki/Unix_philosophy
- a set of cultural norms and philosophical approaches to minimalist,
modular software development
- Write programs that do one thing and do it well.
- Write programs to work together.
- Write programs to handle text streams, because that is a universal interface.
- originated by Ken Thompson
- favors composability as opposed to monolithic design
- a set of cultural norms and philosophical approaches to minimalist,
modular software development
- https://en.wikipedia.org/wiki/Command-line_interface
- processes commands to a computer program in the form of lines of text
- 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
- some programming and maintenance tasks may not have a graphical user interface and may still use a command line
- programs with command-line interfaces are generally easier to automate via scripting
- https://en.wikipedia.org/wiki/Command-line_completion
- a common feature of command-line interpreters, in which the program automatically fills in partially typed commands
- allows the user to type the first few characters of a command, program, or filename, and press a completion key (normally )
- commonly accessed commands, especially ones with long names, require fewer keystrokes to reach
- generally only works in interactive mode
- name tab completion comes from the fact that command-line completion is often invoked by pressing the tab key
- https://en.wikipedia.org/wiki/Shell_(computing)
- a user interface for access to an operating system's services
- 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)
- https://en.wikipedia.org/wiki/Shell_script
- a computer program designed to be run by the Unix shell, a command-line interpreter
- various dialects of shell scripts are considered to be scripting languages
- typical operations performed by shell scripts include file manipulation, program execution, and printing text
- A script which sets up the environment, runs the program, and does any necessary cleanup, logging, etc. is called a wrapper
- https://en.wikipedia.org/wiki/Scripting_language
- a programming language for a special run-time environment that automates the execution of tasks
- often interpreted, rather than compiled
- can be viewed as a domain-specific language for a particular environment
- https://en.wikipedia.org/wiki/Unix
- a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others
- initially intended for use inside the Bell System, AT&T licensed Unix to outside parties in the late 1970s
- Unix systems are characterized by a modular design that is sometimes called the "Unix philosophy": the operating system provides a set of simple tools that each performs a limited, well-defined function, with a unified filesystem (the Unix filesystem) as the main means of communication,[3] and a shell scripting and command language (the Unix shell) to combine the tools to perform complex workflows
- https://en.wikipedia.org/wiki/Linux_distribution
- an operating system made from a software collection that is based upon the Linux kernel and, often, a package management system
- typical Linux distribution comprises a Linux kernel, GNU tools and libraries, additional software, documentation, a window system (the most common being the X Window System), a window manager, and a desktop environment
- most of the included software is free and open-source software made available both as compiled binaries and in source code form, allowing modifications to the original software
- https://en.wikipedia.org/wiki/Berkeley_Software_Distribution
- an operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley
- today, "BSD" often refers to its descendants, such as FreeBSD, OpenBSD, NetBSD, or DragonFly BSD, and systems based on those descendants
- was initially called Berkeley Unix because it was based on the source code of the original Unix developed at Bell Labs
- https://en.wikipedia.org/wiki/Darwin_(operating_system)
- an open-source Unix-like operating system first released by Apple Inc. in 2000
- composed of code developed by Apple, as well as code derived from NeXTSTEP, BSD, Mach, and other free software projects
- Darwin forms the core set of components upon which macOS, iOS, watchOS, tvOS, and iPadOS are based
- https://en.wikipedia.org/wiki/Open-source_software_development
- the process by which open-source software, or similar software whose source code is publicly available, is developed by an open-source software project
- open-source software development has been a large part of the creation of the World Wide Web as we know it, with Tim Berners-Lee contributing his HTML code development as the original platform upon which the internet is now built
- https://en.wikipedia.org/wiki/Everything_is_a_file
- Everything is a file describes one of the defining features of Unix, and its derivatives—that a wide range of input/output resources such as documents, directories, hard-drives, modems, keyboards, printers and even some inter-process and network communications are simple streams of bytes exposed through the filesystem name space
- https://en.wikipedia.org/wiki/Procfs
- a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory
- mapped to a mount point named /proc at boot time. The proc file system acts as an interface to internal data structures in the kernel
- provides a method of communication between kernel space and user space
- https://en.wikipedia.org/wiki/Linux_kernel
- conceived and created in 1991 by Linus Torvalds
- a free and open-source, monolithic, Unix-like operating system kernel
- deployed on a wide variety of computing systems, from personal computers, mobile devices, mainframes, and supercomputer to embedded devices, such as routers, wireless access points, private branch exchanges, set-top boxes, FTA receivers, smart TVs, personal video recorders, and NAS appliances
- https://en.wikipedia.org/wiki/Linux_kernel_interfaces
- https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
- a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor
- was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on February 5, 2007
- requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V
- https://en.wikipedia.org/wiki/Hypervisor
- computer software, firmware or hardware that creates and runs virtual machines
- a computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine
- presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems
- https://en.wikipedia.org/wiki/OS-level_virtualization
- an operating system paradigm in which the kernel allows the existence of multiple isolated user space instances
- Such instances, called containers (LXC, Solaris containers, Docker), Zones (Solaris containers), virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernels (DragonFly BSD), or jails (FreeBSD jail or chroot jail), may look like real computers from the point of view of programs running in them
- programs running inside of a container can only see the container's contents and devices assigned to the container
- https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
- originally developed, starting in the late 1980s
- team was initially led by Rob Pike, Ken Thompson, Dave Presotto and Phil Winterbottom, with support from Dennis Ritchie as head of the Computing Techniques Research Department. Over the years, many notable developers have contributed to the project, including Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup and Bruce Ellis
- replaced Unix as Bell Labs's primary platform for operating systems research
- https://en.wikipedia.org/wiki/List_of_Unix_commands
- https://en.wikipedia.org/wiki/Unix_wars
- https://en.wikipedia.org/wiki/Editor_war
- https://en.wikipedia.org/wiki/Git
- a distributed version-control system for tracking changes in source code during software development
- created by Linus Torvalds in 2005 for development of the Linux kernel
- every Git directory on every computer is a full-fledged repository with complete history and full version-tracking abilities, independent of network access or a central server
- https://en.wikipedia.org/wiki/Big_Tech
- https://en.wikipedia.org/wiki/Application_programming_interface
- originally understood to be a computing interface specific to an application or operating system to allow third parties to extend its functionality beyond that which existed out of the box
- now applies to the use of third party web services and sites as part of new application development
- the "API" referred to is not intended to extend the functionality of the source website or service, but merely to use it
- https://en.wikipedia.org/wiki/Stream_(computing)
- a sequence of data elements made available over time
- can be thought of as items on a conveyor belt being processed one at a time rather than in large batches
- normal functions cannot operate on streams as a whole, as they have potentially unlimited data
- https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
- a communication protocol for electronic mail transmission
- first defined in 1982
- https://en.wikipedia.org/wiki/Internet_protocol_suite
- the conceptual model and set of communications protocols used in the Internet and similar computer networks
- commonly known as TCP/IP because the foundational protocols in the suite are the Transmission Control Protocol (TCP) and the Internet Protocol (IP)
- provides end-to-end data communication specifying how data should be packetized, addressed, transmitted, routed, and received
- technical standards underlying the Internet protocol suite and its constituent protocols are maintained by the Internet Engineering Task Force (IETF)
- https://en.wikipedia.org/wiki/Transmission_Control_Protocol
- one of the main protocols of the Internet protocol suite
- originated in the initial network implementation in which it complemented
the Internet Protocol (IP)
- the entire suite is commonly referred to as TCP/IP
- provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network
- https://en.wikipedia.org/wiki/Internet_Protocol
- the principal communications protocol in the Internet protocol suite for relaying datagrams across network boundaries
- its routing function enables internetworking, and essentially establishes the Internet
- has the task of delivering packets from the source host to the destination host solely based on the IP addresses in the packet headers
- https://en.wikipedia.org/wiki/Public-key_cryptography
- a cryptographic system that uses pairs of keys: public keys, which may be disseminated widely, and private keys,which are known only to the owner
- generation of such keys depends on cryptographic algorithms based on mathematical problems to produce one-way functions
- effective security only requires keeping the private key private
- any person can encrypt a message using the receiver's public key, but that encrypted message can only be decrypted with the receiver's private key
- https://en.wikipedia.org/wiki/Secure_Shell
- a cryptographic network protocol for operating network services securely over an unsecured network
- applications include remote command-line, login, and remote command execution, but any network service can be secured with SSH
- provides a secure channel over an unsecured network in a client–server architecture, connecting an SSH client application with an SSH server
- is generally used to access Unix-like operating systems
- https://en.wikipedia.org/wiki/Transport_Layer_Security
- cryptographic protocol designed to provide communications security over a computer network
- websites can use TLS to secure all communications between their servers and web browsers
- aims primarily to provide privacy and data integrity between two or more communicating computer applications
- identity of the communicating parties can be authenticated using public-key cryptography
- https://en.wikipedia.org/wiki/Tunneling_protocol
- a communications protocol that allows for the movement of data from one network to another
- involves allowing private network communications to be sent across a public network (such as the Internet) through a process called encapsulation
- involves repackaging the traffic data into a different form, perhaps with encryption as standard
- can hide the nature of the traffic that is run through a tunnel
- works by using the data portion of a packet (the payload) to carry the packets that actually provide the service
- Secure Shell (SSH) tunnel consists of an encrypted tunnel created through
an SSH protocol connection
- users may set up SSH tunnels to transfer unencrypted traffic over a network through an encrypted channel
- once an SSH connection has been established, the tunnel starts with SSH listening to a port on the remote or local host; any connections to it are forwarded to the specified address and port originating from the opposing (remote or local, as previously) hosta
- SSH tunnels provide a means to bypass firewalls that prohibit certain Internet services – so long as a site allows outgoing connections
- some SSH clients support dynamic port forwarding that allows the user
to create a SOCKS 4/5 proxy
- users can configure their applications to use their local SOCKS proxy server; this gives more flexibility than creating an SSH tunnel to a single port
- https://en.wikipedia.org/wiki/Port_forwarding
- an application of network address translation (NAT) that redirects a communication request from one address and port number combination to another while the packets are traversing a network gateway, such as a router or firewall
- port forwarding allows remote computers (for example, computers on the Internet) to connect to a specific computer or service within a private local-area network (LAN)
- when configuring port forwarding, the network administrator sets aside one port number on the gateway for the exclusive use of communicating with a service in the private network, located on a specific host
- external hosts must know this port number and the address of the gateway to communicate with the network-internal service
- https://en.wikipedia.org/wiki/SOCKS
- an Internet protocol that exchanges network packets between a client and server through a proxy server
- a SOCKS server proxies TCP connections to an arbitrary IP address, and provides a means for UDP packets to be forwarde
- SOCKS performs at Layer 5 of the OSI model (the session layer, an intermediate layer between the presentation layer and the transport layer)
- https://en.wikipedia.org/wiki/Pretty_Good_Privacy
- an encryption program that provides cryptographic privacy and authentication for data communication
- used for signing, encrypting, and decrypting texts, e-mails, files, directories, and whole disk partitions and to increase the security of e-mail communications
- developed by Phil Zimmermann in 1991
- the Free Software Foundation has developed its own OpenPGP-compliant program called GNU Privacy Guard (abbreviated GnuPG or GPG)
- https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
- an application protocol for distributed, collaborative, hypermedia information systems
- HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access
- https://en.wikipedia.org/wiki/Representational_state_transfer
- a software architectural style that defines a set of constraints to be used for creating Web services
- Web services that conform to the REST architectural style, called RESTful Web services, provide interoperability between computer systems on the Internet
- https://en.wikipedia.org/wiki/ASCII
- abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication
- ASCII codes represent text in computers, telecommunications equipment, and other devices
- ASCII was developed from telegraph code
- first commercial use was as a seven-bit teleprinter code promoted by Bell data services
- work on the ASCII standard began on October 6, 1960, with the first meeting of the American Standards Association's (ASA) (now the American National Standards Institute or ANSI)
- originally based on the English alphabet, ASCII encodes 128 specified characters into seven-bit integers
- https://en.wikipedia.org/wiki/Unicode
- information technology standard for the consistent encoding, representation, and handling of text expressed in most of the world's writing systems
- https://en.wikipedia.org/wiki/UTF-8
- a variable width character encoding capable of encoding all 1,112,06 valid code points in Unicode using one to four one-byte (8-bit) code units
- encoding is defined by the Unicode Standard, and was originally designed by Ken Thompson and Rob Pike
- was designed for backward compatibility with ASCII
- https://en.wikipedia.org/wiki/Lexical_analysis
- the process of converting a sequence of characters (such as in a computer program or web page) into a sequence of tokens (strings with an assigned and thus identified meaning)
- https://en.wikipedia.org/wiki/Parsing
- the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar
- https://en.wikipedia.org/wiki/Natural_language_processing
- a subfield of linguistics, computer science, information engineering, and artificial intelligence concerned with the interactions between computers and human (natural) languages, in particular how to program computers to process and analyze large amounts of natural language data
- https://en.wikipedia.org/wiki/XML
- a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable
- design goals of XML emphasize simplicity, generality, and usability across the Internet
- a textual data format with strong support via Unicode for different human languages
- https://en.wikipedia.org/wiki/SOAP
- a messaging protocol specification for exchanging structured information in the implementation of web services in computer networks
- abbreviation for Simple Object Access Protocol
- uses XML Information Set for its message format, and relies on application layer protocols, most often Hypertext Transfer Protocol (HTTP)
- https://en.wikipedia.org/wiki/Web_Services_Description_Language
- an XML-based interface description language that is used for describing the functionality offered by a web service
- often used in combination with SOAP and an XML Schema
- describes services as collections of network endpoints, or ports
- port is defined by associating a network address with a reusable binding
- collection of ports defines a service
- messages are abstract descriptions of the data being exchanged
- port types are abstract collections of supported operations
- https://en.wikipedia.org/wiki/JSON
- an open standard file format, and data interchange format, that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and array data types
- Douglas Crockford originally specified the JSON format in the early 2000s
- https://en.wikipedia.org/wiki/GeoJSON
- an open standard format designed for representing simple geographical features, along with their non-spatial attributes
- https://en.wikipedia.org/wiki/Scalable_Vector_Graphics
- an Extensible Markup Language (XML)-based vector image format for two-dimensional graphics with support for interactivity and animation
Created
December 25, 2023 14:45
-
-
Save kenjyco/28664a963635d96e497d2b6caf7bcc70 to your computer and use it in GitHub Desktop.
A historical timeline and collection of Wikipedia links with bullet points for opensource terms/concepts, programming languages, text/stream editing tools, companies/organizations, and people behind them
- 1957 https://en.wikipedia.org/wiki/Fortran
- general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing
- originally developed by IBM in 1957 for scientific and engineering applications
- 1966 https://en.wikipedia.org/wiki/QED_(text_editor)
- a line-oriented computer text editor that was developed by Butler Lampson and L. Peter Deutsch for the Berkeley Timesharing System
- had a strong influence on the classic UNIX text editors ed, sed and their descendants such as ex and sam, and more distantly AWK and Perl
- 1968 https://en.wikipedia.org/wiki/Regular_expression
- theorized in 1951
- a sequence of characters that define a search pattern
- used by string searching algorithms for "find" or "find and replace" operations on strings, or for input validation
- programming languages provide regex capabilities either built-in or via libraries
- 1969 https://en.wikipedia.org/wiki/Ed_(text_editor)
- a line editor for Unix and Unix-like operating systems
- one of the first three key elements of the Unix operating system—assembler, editor, and shell—developed by Ken Thompson
- many features of ed came from the qed text editor developed at Thompson's alma mater University of California, Berkeley
- aspects of ed went on to influence ex, which in turn spawned vi
- in current practice, ed is rarely used interactively, but does find use in some shell scripts
- 1969 https://en.wikipedia.org/wiki/B_(programming_language)
- B is a programming language developed at Bell Labs circa 1969. It is the work of Ken Thompson with Dennis Ritchie
- was designed for recursive, non-numeric, machine-independent applications, such as system and language software
- 1972 https://en.wikipedia.org/wiki/C_(programming_language)
- an imperative procedural language
- designed to be compiled using a relatively straightforward compiler to provide low-level access to memory and language constructs that map efficiently to machine instructions, all with minimal runtime support
- C was originally developed at Bell Labs by Dennis Ritchie between 1972 and 1973 to make utilities running on Unix
- was applied to re-implementing the kernel of the Unix operating system
- origin of C is closely tied to the development of the Unix operating system, originally implemented in assembly language
- is available on various platforms, from embedded microcontrollers to supercomputers
- 1973 https://en.wikipedia.org/wiki/Pipeline_(Unix)
- concept was invented by Douglas McIlroy when he noticed that much of the time command shells passed the output file from one program as input to another
- ideas were implemented in 1973 when Ken Thompson added the pipe() system call and pipes to the shell and several utilities in Version 3 Unix
- McIlroy also credits Thompson with the | notation, which greatly simplified the description of pipe syntax in Version 4
- 1974 https://en.wikipedia.org/wiki/Grep
- a command-line utility for searching plain-text data sets for lines that match a regular expression
- name comes from the ed command g/re/p (globally search a regular expression and print)
- Before it was named, grep was a private utility written by Ken Thompson to search files
- 1974 https://en.wikipedia.org/wiki/Sed
- a Unix utility that parses and transforms text, using a simple, compact programming language
- developed from 1973 to 1974 by Lee E. McMahon of Bell Labs
- implemented many of the scripting features of qed that were not supported by ed on Unix
- one of the earliest tools to support regular expressions, and remains in use for text processing, most notably with the substitution command
- alternative tools for plaintext string manipulation and "stream editing" include AWK and Perl
- 1976 https://en.wikipedia.org/wiki/Ex_(text_editor)
- a line editor for Unix systems originally written by Bill Joy
- 1976 https://en.wikipedia.org/wiki/Vi
- a screen-oriented text editor originally created for the Unix operating system
- original code for vi was written by Bill Joy in 1976, as the visual mode for a line editor called ex that Joy had written with Chuck Haley
- 1977 https://en.wikipedia.org/wiki/AWK
- designed for text processing and typically used as a data extraction and reporting tool
- created at Bell Labs in the 1970s
- name is derived from the surnames of its authors: Alfred Aho, Peter Weinberger, and Brian Kernighan
- 1979 http://en.wikipedia.org/wiki/Bourne_shell
- a shell, or command-line interpreter, for computer operating systems
- used as an interactive command interpreter
- also intended as a scripting language and contains most of the features that are commonly considered to produce structured programs
- gained popularity with the publication of The Unix Programming Environment by Brian Kernighan and Rob Pike
- 1981 https://en.wikipedia.org/wiki/Sam_(text_editor)
- a multi-file text editor based on structural regular expressions
- originally designed in the early 1980s at Bell Labs by Rob Pike with the help of Ken Thompson and other Unix developers
- interpreter's command set is modeled after the UNIX editor ed and may be used to operate the editor from a standard text terminal
- 80s https://en.wikipedia.org/wiki/ABC_(programming_language)
- an imperative general-purpose programming language and programming environment
- interactive, structured, high-level, and intended to be used instead of BASIC, Pascal, or AWK
- not meant to be a systems-programming language but is intended for teaching or prototyping
- had a major influence on the design of the Python programming language
- 1985 https://en.wikipedia.org/wiki/C%2B%2B
- a high-level, general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language
- 1987 https://en.wikipedia.org/wiki/Perl
- a family of two high-level, general-purpose, interpreted, dynamic programming languages
- originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier
- borrow features from other programming languages including C, shell script (sh), AWK, and sed
- Perl 5 gained widespread popularity in the late 1990s as a CGI scripting language, in part due to its unsurpassed regular expression and string parsing abilities
- Perl 5 is used for system administration, network programming, finance, bioinformatics, and other applications, such as for GUIs. It has been nicknamed "the Swiss Army chainsaw of scripting languages" because of its flexibility and power, and also its ugliness
- 1989 https://en.wikipedia.org/wiki/Bash_(Unix_shell)
- a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell
- used widely as the default login shell for most Linux distributions and Apple's macOS Mojave and earlier versions
- 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
- supports filename globbing (wildcard matching), piping, here documents, command substitution, variables, and control structures for condition-testing and iteration
- 1990 https://en.wikipedia.org/wiki/Z_shell
- a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting
- an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh
- macOS Catalina, released in October 2019, adopted Zsh as the default shell, replacing Bash
- 1991 https://en.wikipedia.org/wiki/Vim_(text_editor)
- a clone, with additions, of Bill Joy's vi text editor program for Unix
- designed for use both from a command-line interface and as a standalone application in a graphical user interface
- 1991 https://en.wikipedia.org/wiki/Python_(programming_language)
- an interpreted, high-level, general-purpose programming language
- design philosophy emphasizes code readability
- conceived in the late 1980s as a successor to the ABC language
- 1993 https://en.wikipedia.org/wiki/Lua_(programming_language)
- a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications
- interpreter of compiled bytecode is written in ANSI C
- has a relatively simple C API to embed it into applications
- in video game development, Lua is widely used as a scripting language by programmers, mainly due to its perceived easiness to embed, fast execution, and short learning curve
- a large number of non-game applications also use Lua for extensibility, such as Redis (a key-value database), Neovim (a text editor), and Nginx (a web server)
- Lua is also used in Roblox Studio to modify the game environment and developer usages
- 1993 https://en.wikipedia.org/wiki/HTML
- the standard markup language for documents designed to be displayed in a web browser
- It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript
- 1995 https://en.wikipedia.org/wiki/JavaScript
- a programming language that conforms to the ECMAScript specification
- is high-level, often just-in-time compiled, and multi-paradigm
- has curly-bracket syntax, dynamic typing, prototype-based object-orientation, and first-class functions
- alongside HTML and CSS, JavaScript is one of the core technologies of the World Wide Web
- enables interactive web pages and is an essential part of web applications. The vast majority of websites use it for client-side page behavior, and all major web browsers have a dedicated JavaScript engine to execute it
- 1996 https://en.wikipedia.org/wiki/Cascading_Style_Sheets
- a style sheet language used for describing the presentation of a document written in a markup language like HTML
- CSS is designed to enable the separation of presentation and content, including layout, colors, and fonts
- 1997 https://en.wikipedia.org/wiki/ECMAScript
- a scripting-language specification standardized by Ecma International
- was created to standardize JavaScript to help foster multiple independent implementations
- 2002 https://en.wikipedia.org/wiki/Scratch_(programming_language)
- a block-based visual programming language and website targeted primarily at children
- service is developed by the MIT Media Lab, has been translated into 70+ languages, and is used in most parts of the world
- Scratch 3.x is a completely new JavaScript-based code base made up of multiple components
- 2004 https://en.wikipedia.org/wiki/Markdown
- a lightweight markup language with plain-text-formatting syntax
- often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor
- 2005 https://en.wikipedia.org/wiki/Friendly_interactive_shell
- a Unix shell that attempts to be more interactive and user-friendly than those with a longer history (i.e. most other Unix shells)
- design goal of fish is to give the user a rich set of powerful features in a way that is easy to discover, remember, and use
- its syntax derives from neither the Bourne shell (ksh, Bash, zsh) nor the C shell (csh, tcsh)
- unlike previous shells, which disable certain features by default to save system resources, fish enables all features by default
- has "search as you type" automatic suggestions based on history and current directory
- 2006 https://en.wikipedia.org/wiki/Sass_(stylesheet_language)
- a preprocessor scripting language that is interpreted or compiled into Cascading Style Sheets (CSS)
- 2006 https://en.wikipedia.org/wiki/Roblox
- a massively multiplayer online video game and game creation system that allows users to design their own games and play a wide variety of different types of games created by other users
- was created by co-founders David Baszucki and Erik Cassel in 2004, originally under the name DynaBlocks
- games are coded under an Object Oriented Programming system utilizing the programming language Lua to manipulate the environment of the game
- Developers on the site exchange Robux earned from various products on their games into real world currency through the Developer Exchange system
- 2009 https://en.wikipedia.org/wiki/Go_(programming_language)
- a statically typed, compiled programming language designed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson
- syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency
- designers were primarily motivated by their shared dislike of C++
- 2012 https://en.wikipedia.org/wiki/TypeScript
- an open-source programming language developed and maintained by Microsoft
- a strict syntactical superset of JavaScript, and adds optional static typing to the language
- is designed for development of large applications and transcompiles to JavaScript
- compiler is itself written in TypeScript and compiled to JavaScript
- 2014 https://en.wikipedia.org/wiki/ScratchJr
- a visual programming language designed to introduce coding skills to children ages 5–7
- young children can learn to think creatively and reason systematically, despite not being able to read
- a derivative of the Scratch language
- was developed by the MIT Media Lab, that also developed Scratch
The Bell System dominated the telephone services industry in North America for 100 years from its creation in 1877 until its demise in the early 1980s. At the time of its breakup in the early 1980s, the Bell System had assets of $150 billion (equivalent to $370 billion in 2019) and employed over one million people. In 1984 they broke up into the seven Regional Bell Operating Companies (several exist today as very large corporations, such as AT&T, Verizon Communications, and CenturyLink).
- 1877 https://en.wikipedia.org/wiki/Bell_Telephone_Company
- The Bell Telephone Company was started on the basis of holding "potentially valuable patents", principally Bell's master telephone patent #174465
- 1885 https://en.wikipedia.org/wiki/AT%26T_Corporation
- 1911 https://en.wikipedia.org/wiki/IBM
- 1918 https://en.wikipedia.org/wiki/American_National_Standards_Institute
- originally formed in 1918, when five engineering societies and three government agencies founded the American Engineering Standards Committee (AESC)
- in 1928, the AESC became the American Standards Association (ASA)
- in 1966, the ASA was reorganized and became United States of America Standards Institute (USASI)
- present name was adopted in 1969
- 1925 https://en.wikipedia.org/wiki/Bell_Labs
- Researchers working at Bell Labs are credited with the development of the C programming language and the Unix operating system
- 1975 https://en.wikipedia.org/wiki/Microsoft
- considered one of the Big Four technology companies, alongside Amazon, Apple, and Google
- 1976 https://en.wikipedia.org/wiki/Apple_Inc.
- considered one of the Big Four technology companies, alongside Amazon, Google, and Microsoft
- 1977 https://en.wikipedia.org/wiki/Oracle_Corporation
- 1982 https://en.wikipedia.org/wiki/Sun_Microsystems
- 1984 https://en.wikipedia.org/wiki/X/Open
- a consortium founded by several European UNIX systems manufacturers in 1984 to identify and promote open standards in the field of information technology
- the original aim was to define a single specification for operating systems derived from UNIX, to increase the interoperability of applications and reduce the cost of porting software
- 1983 https://en.wikipedia.org/wiki/GNU_Project
- Richard Stallman announced his intent to start coding the GNU Project in a Usenet message in September 1983
- once the kernel and the compiler were finished, GNU was able to be used for program development
- the main goal was to create many other applications to be like the Unix system
- 1985 https://en.wikipedia.org/wiki/Free_Software_Foundation
- founded by Richard Stallman on 4 October 1985 to support the free software movement, which promotes the universal freedom to study, distribute, create, and modify computer software
- 1986 https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force
- an open standards organization, which develops and promotes voluntary Internet standards, in particular the standards that comprise the Internet protocol suite (TCP/IP)
- 1987 https://en.wikipedia.org/wiki/GNU_Compiler_Collection
- a compiler system produced by the GNU Project supporting various programming languages
- a key component of the GNU toolchain and the standard compiler for most projects related to GNU and Linux, including the Linux kernel
- 1988 https://en.wikipedia.org/wiki/Open_Software_Foundation
- a not-for-profit organization founded in 1988 under the U.S. National Cooperative Research Act of 1984 to create an open standard for an implementation of the UNIX operating system
- 1991 https://en.wikipedia.org/wiki/Unicode_Consortium
- primary purpose is to maintain and publish the Unicode Standard which was developed with the intention of replacing existing character encoding schemes which are limited in size and scope, and are incompatible with multilingual environments
- 1994 https://en.wikipedia.org/wiki/World_Wide_Web_Consortium
- the main international standards organization for the World Wide Web
- 1994 https://en.wikipedia.org/wiki/Amazon_(company)
- considered one of the Big Four tech companies, alongside Google, Apple, and Microsoft
- 1996 https://en.wikipedia.org/wiki/The_Open_Group
- industry consortium that seeks to "enable the achievement of business objectives" by developing "open, vendor-neutral technology standards and certifications"
- was established in 1996 when X/Open merged with the Open Software Foundation
- 1998 https://en.wikipedia.org/wiki/Google
- considered one of the Big Four technology companies, alongside Amazon, Apple, and Microsoft
- https://en.wikipedia.org/wiki/Gardiner_Greene_Hubbard
- father-in-law to Alexander Graham Bell
- founder and the first president of the Bell Telephone Company which later evolved into AT&T
- https://en.wikipedia.org/wiki/Alexander_Graham_Bell
- credited with inventing and patenting the first practical telephone
- co-founded AT&T in 1885
- https://en.wikipedia.org/wiki/Dennis_Ritchie
- created the C programming language
- https://en.wikipedia.org/wiki/Ken_Thompson
- invented the B programming language, the direct predecessor to the C programming language
- designed and implemented the original Unix operating system
- co-creator of UTF-8 with Rob Pike
- co-invented the Go programming language
- other notable contributions included his work on regular expressions and early computer text editors QED and ed
- https://en.wikipedia.org/wiki/Rob_Pike
- best known for his work on the Go programming language and at Bell Labs, where he was a member of the Unix team
- co-creator of UTF-8 with Ken Thompson
- creator of the Sam text editor
- is the co-author of The Practice of Programming and The Unix Programming Environment with Brian Kernighan
- https://en.wikipedia.org/wiki/Douglas_McIlroy
- joined Bell Laboratories in 1958
- best known for having originally proposed Unix pipelines and developed several Unix tools, such as spell, diff, sort, join, graph, speak, and tr
- https://en.wikipedia.org/wiki/Lee_E._McMahon
- worked for Bell Labs from 1963 until 1989, and is best known for his contributions to early versions of the Unix operating system, in particular the sed stream editor
- https://en.wikipedia.org/wiki/Brian_Kernighan
- worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie
- co-authored the first book on C programming with Dennis Ritchie
- co-authored first commercially published book that presented the shell as a programming language in a tutorial form with Rob Pike
- designed the AWK language (the K in AWK)
- https://en.wikipedia.org/wiki/Alfred_Aho
- conducted research at Bell Labs from 1967 to 1991, and again from 1997 to 2002 as Vice President of the Computing Sciences Research Center
- devised efficient regular expression and string-pattern matching algorithms that he implemented in the first versions of the Unix tools egrep and fgrep
- also widely known for his co-authorship of the AWK programming language
- https://en.wikipedia.org/wiki/Peter_J._Weinberger
- best known for his early work at Bell Labs; now works at Google
- contributed to the design of the AWK programming language and the Fortran compiler f77
- https://en.wikipedia.org/wiki/Bill_Gates
- best known as the co-founder of Microsoft Corporation
- https://en.wikipedia.org/wiki/Bill_Joy
- the original author of the vi text editor
- played an integral role in the early development of BSD UNIX while a graduate student at Berkeley
- co-founded Sun Microsystems in 1982
- https://en.wikipedia.org/wiki/Richard_Stallman
- launched the GNU Project in September 1983 to create a Unix-like computer operating system composed entirely of free software
- founded the Free Software Foundation (FSF) in October 1985
- campaigns for software to be distributed in a manner such that its users receive the freedoms to use, study, distribute, and modify that software
- launched the GNU Project, founded the Free Software Foundation, developed the GNU Compiler Collection
- https://en.wikipedia.org/wiki/Phil_Zimmermann
- creator of Pretty Good Privacy (PGP), the most widely used email encryption software in the world
- https://en.wikipedia.org/wiki/Bjarne_Stroustrup
- best known for the creation and development of the C++ programming language
- https://en.wikipedia.org/wiki/Larry_Wall
- created the Perl programming language
- https://en.wikipedia.org/wiki/Tim_Berners-Lee
- best known as the inventor of the World Wide Web
- director of the World Wide Web Consortium (W3C) which oversees the continued development of the Web
- proposed an information management system on 12 March 1989
- then implemented the first successful communication between a Hypertext Transfer Protocol (HTTP) client and server via the internet in mid-November
- https://en.wikipedia.org/wiki/Brian_Fox_(computer_programmer)
- the original author of the GNU Bash shell
- https://en.wikipedia.org/wiki/Bram_Moolenaar
- original author, maintainer, release manager, and benevolent dictator for life of Vim
- Since July 2006, Moolenaar has been employed by Google
- https://en.wikipedia.org/wiki/Guido_van_Rossum
- best known as the author of the Python programming language
- helped develop the ABC programming language
- worked at the cloud file storage company Dropbox from 2013 - 2019
- https://en.wikipedia.org/wiki/Roberto_Ierusalimschy
- known for creating the Lua programming language
- author of Programming in Lua
- https://en.wikipedia.org/wiki/Linus_Torvalds
- the creator and, historically, the principal developer of the Linux kernel
- https://en.wikipedia.org/wiki/Douglas_Crockford
- popularized the data format JSON (JavaScript Object Notation), and has developed various JavaScript related tools such as JSLint and JSMin
- https://en.wikipedia.org/wiki/David_Baszucki
- best known as the co-founder of Roblox
- https://en.wikipedia.org/wiki/Jeff_Bezos
- best known as the founder, chief executive officer, and president of Amazon
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment