HOME

TheInfoList



OR:

OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and
BusyBox BusyBox is a software suite that provides several List of Unix commands, Unix utilities in a single executable file. It runs in a variety of POSIX environments such as Linux, Android (operating system), Android, and FreeBSD, although many of the ...
. All components have been optimized to be small enough to fit into the limited storage and memory available in home routers. OpenWrt is configured using a
command-line interface A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
( ash shell) or a web interface (LuCI). There are about 8000 optional software packages available for installation via the opkg
package management system A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
. OpenWrt can run on various types of devices, including CPE routers,
residential gateway A residential gateway is a small consumer-grade gateway which bridges network access between connected local area network (LAN) hosts to a wide area network (WAN) (such as the Internet) via a modem, or directly connects to a WAN (as in EttH), ...
s,
smartphone A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
s, pocket computers (e.g., Ben NanoNote). It is also possible to run OpenWrt on
personal computer A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
s and
laptop A laptop computer or notebook computer, also known as a laptop or notebook, is a small, portable personal computer (PC). Laptops typically have a Clamshell design, clamshell form factor (design), form factor with a flat-panel computer scree ...
s.


History

The OpenWrt project was started in 2004 after Linksys had built the
firmware In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
for their WRT54G series of wireless routers with code licensed under the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
. Under the terms of that license, Linksys was required to make the source code of its modified version available under the same license, which enabled independent developers to create derivative versions. Support was originally limited to the WRT54G series, but has since been expanded to include many other routers and devices from many different manufacturers. Using this code as a base and later as a reference, developers created a
Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
that offers many features not previously found in consumer-level routers. Early on some features required proprietary software. For example, prior to OpenWrt 8.09 (based on Linux 2.6.25 and the b43 kernel module) WLAN for many
Broadcom Broadcom Inc. is an American multinational corporation, multinational designer, developer, manufacturer, and global supplier of a wide range of semiconductor and infrastructure software products. Broadcom's product offerings serve the data cen ...
-based routers could only be had via the proprietary wl.o module (and which required Linux 2.4.x). OpenWrt releases were historically named after cocktails, such as White Russian, Kamikaze, Backfire, Attitude Adjustment, Barrier Breaker and Chaos Calmer, and their recipes were included in the message of the day (motd) displayed after logging in using the
command-line interface A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
. In May 2016, OpenWrt was forked by a group of core OpenWrt contributors due to disagreements on internal process. The fork was dubbed Linux Embedded Development Environment (LEDE). The schism was reconciled a year later. Following the remerger, announced in January 2018, the OpenWrt branding is preserved, with many of the LEDE processes and rules used. The LEDE project name was used for v17.01, with development versions of 18.01 branded OpenWrt, dropping the original cocktail based naming scheme. "


Releases


LEDE

The Linux Embedded Development Environment (LEDE) project was a fork of the OpenWrt project and shared many of the same goals. It was created in May 2016 by a group of core OpenWrt contributors due to disagreements on OpenWrt internal processes. The schism was nominally reconciled a year later in May 2017 pending approval of the LEDE developers. The remerger preserves the OpenWrt branding, but uses many of the LEDE processes and rules. The remerge proposal vote was passed by LEDE developers in June 2017, and formally announced in January 2018. The merging process was completed before the OpenWrt 18.06 release.


Features

OpenWrt features a writeable root file system, enabling users to modify any file and easily install additional software. This is in contrast with other firmware based on read-only file systems which don't allow modifying installed software without rebuilding and flashing a complete firmware image. This is accomplished by overlaying a read-only compressed
SquashFS Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB for greater compression. Several compression algorithms are supported. Squashfs is ...
file system with a writeable JFFS2 file system using overlayfs. Additional software can be installed with the ''opkg'' package manager and the package repository contains approximately 8000 packages (by 2022). OpenWrt can be configured through either a
command-line interface A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
or a web interface called LuCI. OpenWrt provides set of scripts called UCI (unified configuration interface) to unify and simplify configuration through the command-line interface. Additional web interfaces, such as
Gargoyle In architecture, and specifically Gothic architecture, a gargoyle () is a carved or formed Grotesque (architecture), grotesque with a spout designed to convey water from a roof and away from the side of a building, thereby preventing it from ...
, are also available. OpenWrt provides regular bug fixes and security updates even for devices that are no longer supported by their manufacturers. OpenWrt provides exhaustive possibilities to configure common network-related features, like
IPv4 Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
,
IPv6 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
, DNS, DHCP,
routing Routing is the process of selecting a path for traffic in a Network theory, network or between or across multiple networks. Broadly, routing is performed in many types of networks, including circuit-switched networks, such as the public switched ...
, firewall, NAT, port forwarding and WPA. Other features include: * Extensible configuration of the entire hardware drivers, e.g. built-in
network switch A network switch (also called switching hub, bridging hub, Ethernet switch, and, by the IEEE, MAC bridge) is networking hardware that connects devices on a computer network by using packet switching to receive and forward data to the destinat ...
es and their
VLAN A virtual local area network (VLAN) is any broadcast domain that is partitioned and isolated in a computer network at the data link layer ( OSI layer 2).IEEE 802.1Q-2011, ''1.4 VLAN aims and benefits'' In this context, virtual refers to a ...
-capabilities,
WNIC WNIC (100.3 FM broadcasting, FM) is a commercial Radio broadcasting, radio station city of license, licensed to Dearborn, Michigan, and serving the Metro Detroit media market. Owned by iHeartMedia, WNIC broadcasts an Adult contemporary music, ...
s,
DSL modem A digital subscriber line (DSL) modem is a device used to connect a computer or Router (computing), router to a telephone line which provides the digital subscriber line (DSL) service for connection to the Internet, which is often called ''DSL ...
s, FX, available hardware buttons, etc. *
Mesh networking A mesh network is a local area network network topology, topology in which the infrastructure Node (networking), nodes (i.e. bridges, switches, and other infrastructure devices) connect directly, dynamically and non-hierarchically to as many othe ...
through B.A.T.M.A.N., OLSR and IEEE 802.11s-capabilities of the WNIC drivers and other ad hoc mesh routing protocols that have been implemented within Linux. * Wireless functionality, e.g. make the device act as a
wireless repeater A wireless repeater (also called wireless range extender or wifi extender) is a device that takes an existing signal from a wireless router or wireless access point and rebroadcasts it to create a second network. When two or more hosts have to ...
, a
wireless access point In Computer networking device, computer networking, a wireless access point (WAP) (also just access point (AP)) is a networking hardware device that allows other Wi-Fi devices to connect to a wired network or wireless network. As a standalone ...
, a wireless bridge, a
captive portal A captive portal is a web page accessed with a web browser that is displayed to newly connected users of a Wi-Fi or wired network before they are granted broader access to network resources. Captive portals are commonly used to present a landing o ...
, or a combination of these with e.g. ChilliSpot, WiFiDog Captive Portal, etc. * Wireless security: Packet injection, e.g
Airpwn
lorcon, e.a. * Dynamically configured port forwarding protocols PCP, NAT-PMP, and UPnP IGD * Port knocking * TR-069 (CWMP) client * IPS via Snort * Active queue management (AQM) through the network scheduler of the Linux kernel, with many available queuing disciplines. CoDel has been backported to Kernel 3.3. This encapsulates Traffic shaping to ensure fair distribution of bandwidth among multiple users and
quality of service Quality of service (QoS) is the description or measurement of the overall performance of a service, such as a telephony or computer network, or a cloud computing service, particularly the performance seen by the users of the network. To quantitat ...
(QoS) for simultaneous use of applications such as
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
, online gaming, and
streaming media Streaming media refers to multimedia delivered through a Computer network, network for playback using a Media player (disambiguation), media player. Media is transferred in a ''stream'' of Network packet, packets from a Server (computing), ...
without experiencing the negative impacts of link saturation. * Load balancing for use with multiple ISPs using
source-specific routing Source-specific routing, also called source-address dependent routing (SADR), is a routing technique in which a routing decision is made by looking at the source address of a Network packet, packet in addition to its destination address. The main ...
* IP tunneling ( GRE, OpenVPN, pseudowire, WireGuard, etc.) * Extensible realtime network monitoring and statistics through e.g.
RRDtool RRDtool (''round-robin database tool'') is a data logging and graphing system for time series data. It aims to handle time series data such as computer network, network bandwidth (computing), bandwidth, temperatures or Load (computing), CPU loa ...
, Collectd,
Nagios Nagios is an event monitoring system that offers monitoring and alerting services for servers, switches, applications and services. It alerts users when things go wrong and alerts them a second time when the problem has been resolved. Ethan ...
, Munin lite, Zabbix, etc. * Dynamic DNS services to maintain a fixed domain name with an ISP that does not provide a static
IP address An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
* OpenWrt supports any hardware that has Linux support; devices that can be connected (e.g. over
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
) include **
Printers Printer may refer to: Technology * Printer (publishing), a person * Printer (computing), a hardware device * Optical printer for motion picture films People * Nariman Printer (fl. c. 1940), Indian journalist and activist * James Printer (1 ...
**
Mobile broadband modem A mobile broadband modem, also known as wireless modem or cellular modem, is a type of modem that allows a personal computer or a router to receive wireless Internet access via a mobile broadband connection instead of using telephone or cable ...
s **
Webcam A webcam is a video camera which is designed to record or stream to a computer or computer network. They are primarily used in Videotelephony, video telephony, live streaming and social media, and Closed-circuit television, security. Webcams can b ...
s **
Sound card A sound card (also known as an audio card) is an internal expansion card that provides input and output of audio signals to and from a computer under the control of computer programs. The term ''sound card'' is also applied to external audio ...
s * Notable software packages to use the hardware support are **
File sharing File sharing is the practice of distributing or providing access to digital media, such as computer programs, multimedia (audio, images and video), documents or electronic books. Common methods of storage, transmission and dispersion include ...
via
SAMBA Samba () is a broad term for many of the rhythms that compose the better known Brazilian music genres that originated in the Afro-Brazilians, Afro Brazilian communities of Bahia in the late 19th century and early 20th century, It is a name or ...
, (Windows-compatible), NFS,
FTP The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
, SFTP. Printer sharing over the print server CUPS (spooling) or p910nd (non-spooling) ** PulseAudio,
Music Player Daemon Music Player Daemon (MPD) is a free software, free and Open-source software, open-source music player Server (computing), server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a Client (co ...
, Audio/Video streaming via DLNA/ UPnP AV standards,
iTunes iTunes is a media player, media library, and mobile device management (MDM) utility developed by Apple. It is used to purchase, play, download and organize digital multimedia on personal computers running the macOS and Windows operating s ...
( DAAP) server ** Asterisk (PBX) ** MQ Telemetry Transport through Mosquitto


Development

OpenWrt's development environment and build system, known together as ''OpenWrt Buildroot'', are based on a heavily modified
Buildroot Buildroot is a set of Makefiles and Patch (Unix), patches that simplifies and automates the process of building a complete and bootable Linux environment for an embedded system, while using Cross compiler, cross-compilation to allow building for ...
system. OpenWrt Buildroot is a set of
Makefile In software development, Make is a command-line interface software tool that performs actions ordered by configured Dependence analysis, dependencies as defined in a configuration file called a ''makefile''. It is commonly used for build automati ...
s and patches that automates the process of building a complete Linux-based OpenWrt system for an embedded device, by building and using an appropriate cross-compilation
toolchain A toolchain is a set of software development tools used to build and otherwise develop software. Often, the tools are executed sequentially and form a pipeline such that the output of one tool is the input for the next. Sometimes the term is us ...
. Embedded devices usually use a different processor than the one found in host computers used for building their OpenWrt system images, requiring a cross-compilation toolchain. Such a compilation toolchain runs on a host system but generates code for a targeted embedded device and its processor's
instruction set architecture In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, ...
(ISA). For example, if a host system uses
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
and a target system uses MIPS32, the regular compilation toolchain of the host runs on x86 and generates code for x86 architecture, while the cross-compilation toolchain runs on x86 and generates code for the MIPS32 architecture. OpenWrt Buildroot automates this whole process to work on the instruction set architectures of most embedded devices and host systems. OpenWrt Buildroot provides the following features: * Makes it easy to port software across architectures * Uses kconfig (Linux kernel menuconfig) for the configuration of all options * Provides an integrated cross-compiler toolchain ( gcc, ld,
uClibc __NOTOC__ In computing, uClibc (sometimes written μClibc) is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was written to support μClinux, a version of Linux not ...
etc.) * Provides an abstraction for autotools ( automake, autoconf), CMake and
SCons SCons is a software development tool that analyzes source code dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system pla ...
* Handles standard OpenWrt image build workflow: downloading, patching, configuration, compilation and packaging * Provides a number of common fixes for known badly behaving packages Besides building system images, OpenWrt development environment also provides a mechanism for simplified cross-platform building of OpenWrt software packages. Source code for each software package is required to provide a Makefile-like set of building instructions, and an optional set of patches for bug fixes or footprint optimizations.


Hardware compatibility

OpenWrt runs many different routers and includes a table of compatible hardware on its website. In its buyer's guide, it notes that users recommend devices equipped with wireless chips from either Qualcomm's Atheros, Ralink (now MediaTek) or any vendor with open source drivers and specifications. It specifically avoids
Broadcom Broadcom Inc. is an American multinational corporation, multinational designer, developer, manufacturer, and global supplier of a wide range of semiconductor and infrastructure software products. Broadcom's product offerings serve the data cen ...
chipsets as the feature set is very limited due to having no open drivers. OpenWrt also recommends choosing a device with a minimum of 16 MB of flash and 128 MB of RAM, preferably higher amounts.


Adoption

OpenWrt, especially its Buildroot build system, has been adopted as the structure for other efforts. For example
AltiWi
"one-time-fee-only" replacement for Cloudtrax. * Bufferbloat.net (Cerowrt) * Freifunk and other mesh network communities *
IETF The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
IPv6 integration projects HIPnet and HomeNet are OpenWrt-based * prplOS, carrier-grade framework designed to power ISPs routers and gateways made by Prpl Foundation * SIMET Box, developed by
NIC.br The Núcleo de Informação e Coordenação do Ponto BR ( English: ''Brazilian Network Information Center'') is a non-profit organization created to implement the decisions and projects designed by the Brazilian Internet Steering Committee. Some ...
, is OpenWrt-based


Derivative projects


AREDN
The
Amateur Radio Amateur radio, also known as ham radio, is the use of the radio frequency radio spectrum, spectrum for purposes of non-commercial exchange of messages, wireless experimentation, self-training, private recreation, radiosport, contesting, and emer ...
Emergency Data Network uses a firmware based on OpenWrt
GitHub Project
* ''CeroWrt'' (2011—2014) project to resolve bufferbloat in home networking, support IPv6, integrate DNSSEC, for wired and wireless, to complement the debloat-testing kernel tree and provide a platform for real-world testing of bufferbloat fixes. The CeroWRT project is completely by 2014, when the finalized fixes were merged into OpenWRT. The "Bufferbloat project" behind CeroWRT went on to research new methods such as
CAKE Cake is a flour confection usually made from flour, sugar, and other ingredients and is usually baked. In their oldest forms, cakes were modifications of bread, but cakes now cover a wide range of preparations that can be simple or elabor ...
. * Coova chilli OpenWrt-based with focus on wireless hotspots, a fork of chillifire with focus on wireless hotspot management * Flukso Wireless sensor nodes using an Atheros AR2317 chipset running a patched OpenWrt OS for communication. Sources and hardware schematics available on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
. * Fon OpenWrt-based wireless routers acting as hotspots. Sources and toolchain available on fonosfera.org *
Gargoyle In architecture, and specifically Gothic architecture, a gargoyle () is a carved or formed Grotesque (architecture), grotesque with a spout designed to convey water from a roof and away from the side of a building, thereby preventing it from ...
a web interface for OpenWrt with a strong emphasis on usability that later forked into a separate distribution * Gluon Framework for building OpenWrt-based firmwares fitted for mesh network deployment
GitHub Project
* JUCIWRT a modern distribution using the JUCI webgui that later became an OpenWrt feed instead. The source code for JUCI is available a
mkschreder/juci
and is still usable by installing openwrt feed found a
mkschreder/juci-openwrt-feed
* libreCMC OpenWrt-based distribution which excludes non-free software or binary blobs, endorsed by the
Free Software Foundation The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
* LibreMeshFramework for creating OpenWrt-based firmwares for wireless mesh nodes
GitHub Project
* Linino OpenWrt-based distribution for the MIPS-based
Arduino Arduino () is an Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
Yùn
GitHub Project
* Midge Linux an OpenWrt-based distribution for devices based on
Infineon Technologies Infineon Semiconductor solutions is the largest microcontroller manufacturer in the world, as well as Germany's largest semiconductor manufacturer. It is also the leading automotive semiconductor manufacturer globally. Infineon had roughly 58,0 ...
ADM-5120
SoCs SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway. Genes * CISH (gene), CISH * SOCS1 * SOCS2 * SOCS3 * SOCS4 * SOCS5 * SOCS6 * SOCS7 Structure All SOCS have certai ...
, such as Edimax BR-6104K and BR-6104KP.
OpenMPTCProuter
aggregation of multiple Internet connections using Multipath TCP * OpenSAN
iSCSI Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
target
Storage Area Network A storage area network (SAN) or storage network is a computer network which provides access to consolidated, block device, block-level data storage. SANs are primarily used to access Computer data storage, data storage devices, such as disk ...
realization. * PacketProtector OpenWrt-based security distribution that includes IDS, IPS, VPN, and web antivirus capabilities. Packages included Snort, Snort-inline, FreeRADIUS,
OpenVPN OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server appl ...
, DansGuardian and ClamAV. These tools were accessible via the old web GUI management interface of OpenWrt, called X-Wrt or webif^2. Project ended on June 7, 2012. * Qualcomm's QCA Software Development Kit (QSDK) which is being used as a development basis by many OEMs is an OpenWrt derivative * RutOS an operating system for all Teltonika routers, based on OpenWrt. Source code found a
GPL - Teltonika Networks Wiki

SmoothWAN
aggregation of multiple Internet connections and network conditioning using Speedify, Engarde and tinyfecvpn. * Turris Omnia and Turris MOX routers run on an OpenWrt derivative * Ubiquiti's wireless router firmwares are based on OpenWrt * Diverse
grassroots A grassroots movement is one that uses the people in a given district, region or community as the basis for a political or continent movement. Grassroots movements and organizations use collective action from volunteers at the local level to imp ...
projects for
wireless community network Wireless community networks or wireless community projects or simply community networks, are non-centralized, self-managed and collaborative networks organized in a grassroots fashion by communities, non-governmental organizations and cooperatives ...
s, including Freifunk, Libre-Mesh and qMp * Some TP-Link,
Xiaomi Xiaomi (; ) is a Chinese multinational corporation and technology company headquartered in Beijing, China. It is best known for consumer electronics software electric vehicles. It is the second-largest manufacturer of smartphones in the worl ...
, ZyXEL and D-Link router firmwares are derived from OpenWrt * FreeWRT was a Linux distribution that was used in embedded systems such as WLAN devices from Linksys and Asus. Not related to a project (with same name) based on Sveasoft firmware. * Friendly Electronics manufactures the NanoPi series of SoC devices and makes available an OpenWRT derivative OS called FriendlyWRT. * Ansuel's Technicolor Custom GUI a modified management web interface developed on the basis of the official Technicolor for Homeware firmware, which runs a fork of OpenWrt, unlocking Technicolor Modem/Routers.


See also

* List of router firmware projects * Prpl Foundation * Banana Pi


References


External links


OpenWrt Firmware Selector

OpenWrt Downloads

OpenWrt Sysupgrade Server
*
OpenWrt Mailing Lists

OpenWrt Forum

LuCI project

OpenWrt Summit

Wireless Battle Mesh

GPL Code Center
at Linksys {{Software in the Public Interest Custom firmware Embedded Linux distributions Free routing software Homebrew software Linux distributions without systemd Lua (programming language)-scriptable software Network operating systems Wi-Fi Free and open-source software Free software programmed in C Linux distributions Open-source firmware