Misplaced Pages

OpenWrt

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

An Embedded Operating System (EOS) is an operating system designed specifically for embedded computer systems . These systems aim to enhance functionality and reliability to perform dedicated tasks. When the multitasking method employed allows for timely task execution, such an OS may qualify as a real-time operating system (RTOS).

#505494

61-402: OpenWrt (from open wireless router ) is an open-source project for embedded operating systems based on Linux , primarily used on embedded devices to route network traffic. The main components are Linux, util-linux , musl , and BusyBox . 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

122-438: A command-line interface ( ash shell) or a web interface (LuCI). There are about 8000 optional software packages available for installation via the opkg package management system . OpenWrt can run on various types of devices, including CPE routers, residential gateways , smartphones , pocket computers (e.g., Ben NanoNote ). It is also possible to run OpenWrt on personal computers and laptops . The OpenWrt project

183-719: A command-line interface 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 , 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 , IPv6 , DNS , DHCP , routing , firewall , NAT , port forwarding and WPA . Other features include: OpenWrt's development environment and build system, known together as OpenWrt Buildroot , are based on

244-519: A flag or switch ) modifies the operation of a command; the effect is determined by the command's program. Options follow the command name on the command line, separated by spaces. A space before the first option is not always required, such as Dir/? and DIR /? in DOS, which have the same effect of listing the DIR command's available options, whereas dir --help (in many versions of Unix) does require

305-507: A help option provides a concise review of the options of a command. The command-line environment may not provide graphical enhancements such as different fonts or extended edit windows found in a GUI. It may be difficult for a new user to become familiar with all the commands and options available, compared with the icons and drop-down menus of a graphical user interface, without reference to manuals. Operating system (OS) command-line interfaces are usually distinct programs supplied with

366-478: A pipeline where the output of one command becomes the input to the next command. One can modify the set of available commands by modifying which paths appear in the PATH environment variable. Under Unix, commands also need be marked as executable files. The directories in the path variable are searched in the order they are given. By re-ordering the path, one can run e.g. \OS2\MDOS\E.EXE instead of \OS2\E.EXE, when

427-401: A processor and corresponding software . Embedded software requires storage for executables and temporary data processing during runtime . Embedded systems typically utilize ROM and RAM as main memory components. For functionality, embedded systems necessitate input and output interfaces. Embedded hardware configurations are often unique, varying according to the application. Given

488-438: A CLI, presenting their own prompt to the user and accepting command lines. Other programs support both a CLI and a GUI. In some cases, a GUI is simply a wrapper around a separate CLI executable file . In other cases, a program may provide a CLI as an optional alternative to its GUI. CLIs and GUIs often support different functionality. For example, all features of MATLAB , a numerical analysis computer program, are available via

549-458: A Unix-like CLI. Microsoft provides MKS Inc. 's ksh implementation MKS Korn shell for Windows through their Services for UNIX add-on. Since 2001, the Macintosh operating system macOS has been based on a Unix-like operating system called Darwin . On these computers, users can access a Unix-like command-line interface by running the terminal emulator program called Terminal , which

610-504: A command procedure or script which itself can be treated as a command. These advantages mean that a user must figure out a complex command or series of commands only once, because they can be saved, to be used again. The commands given to a CLI shell are often in one of the following forms: where doSomething is, in effect, a verb , how an adverb (for example, should the command be executed verbosely or quietly ) and toFiles an object or objects (typically one or more files) on which

671-439: 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 (ISA). For example, if a host system uses x86 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

SECTION 10

#1732798449506

732-413: A heavily modified Buildroot system. OpenWrt Buildroot is a set of Makefiles 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 . Embedded devices usually use a different processor than the one found in host computers used for building their OpenWrt system images, requiring

793-587: A merger, Ready System and Silicon Valley’s Microtec Research developed two new RTOS kernels, VRTX32 and VRTXsa, building upon VRTXmc . Concurrently, the VRTX integrated development environment, Spectra, was introduced. In 1996, Microsoft released its embedded operating system, WinCE , which supported various processor architectures including x86 , ARM , SH4 , and MIPS . WinCE has since become obsolete, with mainstream support having ended in 2018. OS-9 and VxWorks are also notable embedded operating systems. In

854-588: A pure GUI. This is typically the case with operating system command shells . CLIs are also used by systems with insufficient resources to support a graphical user interface. Some computer language systems (such as Python , Forth , LISP , Rexx , and many dialects of BASIC ) provide an interactive command-line mode to allow for rapid evaluation of code. CLIs are often used by programmers and system administrators, in engineering and scientific environments, and by technically advanced personal computer users. CLIs are also popular among people with visual disabilities since

915-441: A variety of embedded systems. Prominent examples of these include OpenEmbedded , BusyBox , uClibc , musl libc , and Buildroot . Command-line interface A command-line interface ( CLI ) is a means of interacting with a computer program by inputting lines of text called command-lines . Command-line interfaces emerged in the mid-1960s, on computer terminals , as an interactive and more user-friendly alternative to

976-726: 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. OpenWrt features a writeable root file system , enabling users to modify any file and easily install additional software. This

1037-513: Is active a program is typically invoked by typing its name followed by command-line arguments (if any). For example, in Unix and Unix-like environments, an example of a command-line argument is: file.s is a command-line argument which tells the program rm to remove the file named file.s . Some programming languages, such as C , C++ and Java , allow a program to interpret the command-line arguments by handling them as string parameters in

1098-600: Is found in the Utilities sub-folder of the Applications folder, or by remotely logging into the machine using ssh . Z shell is the default shell for macOS; Bash, tcsh , and the KornShell are also provided. Before macOS Catalina , Bash was the default. A CLI is used whenever a large vocabulary of commands or queries, coupled with a wide (or arbitrary) range of options, can be entered more rapidly as text than with

1159-496: 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 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

1220-491: Is required to provide a Makefile-like set of building instructions, and an optional set of patches for bug fixes or footprint optimizations. 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 chipsets as

1281-516: Is the grammar that all commands must follow. In the case of operating systems , DOS and Unix each define their own set of rules that all commands must follow. In the case of embedded systems , each vendor, such as Nortel , Juniper Networks or Cisco Systems , defines their own proprietary set of rules. These rules also dictate how a user navigates through the system of commands. The semantics define what sort of operations are possible, on what sort of data these operations can be performed, and how

SECTION 20

#1732798449506

1342-415: The b43 kernel module) WLAN for many Broadcom -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

1403-480: The Internet . As a result, several new embedded operating systems have gained popularity, such as Embedded Linux variants ( OpenWrt , Zeroshell , Android , LineageOS , LEDE , LibreCMC ), OpenHarmony , Oniro OS , HarmonyOS , NetBSD , PX5 RTOS , ThreadX , FreeRTOS , among others. Numerous Linux -based projects, toolkits, and frameworks have been developed for creating operating systems that operate on

1464-410: The command-line interface . 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

1525-476: The main function . Other languages, such as Python , expose operating system specific API (functionality) through sys module , and in particular sys.argv for command-line arguments . In Unix-like operating systems , a single hyphen used in place of a file name is a special value specifying that a program should handle data coming from the standard input or send data to the standard output . A command-line option or simply option (also known as

1586-533: The CLI, whereas the MATLAB GUI exposes only a subset of features. In Colossal Cave Adventure from 1975, the user uses a CLI to enter one or two words to explore a cave system. The command-line interface evolved from a form of communication conducted by people over teleprinter (TTY) machines. Sometimes these involved sending an order or a confirmation using telex . Early computer systems often used teleprinter as

1647-466: 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: 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

1708-524: The PC's serial ports . These were typically used to interface an organization's new PC's with their existing mini- or mainframe computers, or to connect PC to PC. Some of these PCs were running Bulletin Board System software. Early operating system CLIs were implemented as part of resident monitor programs, and could not easily be replaced. The first implementation of the shell as a replaceable component

1769-462: 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 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

1830-498: The Windows CMD.EXE programs, the latter groups being based heavily on DEC's RSX-11 and RSTS CLIs. Under most operating systems, it is possible to replace the default shell program with alternatives; examples include 4DOS for DOS, 4OS2 for OS/2, and 4NT / Take Command for Windows. Although the term 'shell' is often used to describe a command-line interpreter, strictly speaking, a 'shell' can be any program that constitutes

1891-423: The command In zsh the $ RPROMPT variable controls an optional prompt on the right-hand side of the display. It is not a real prompt in that the location of text entry does not change. It is used to display information on the same line as the prompt, but right-justified. In RISC OS the command prompt is a * symbol, and thus (OS) CLI commands are often referred to as star commands . One can also access

OpenWrt - Misplaced Pages Continue

1952-670: The command line interface as the primary user interface replaced by the Graphical User Interface . The command line remained available as an alternative user interface, often used by system administrators and other advanced users for system administration, computer programming and batch processing . In November 2006, Microsoft released version 1.0 of Windows PowerShell (formerly codenamed Monad ), which combined features of traditional Unix shells with their proprietary object-oriented .NET Framework . MinGW and Cygwin are open-source packages for Windows that offer

2013-399: The command should act. The > in the third example is a redirection operator , telling the command-line interpreter to send the output of the command not to its own standard output (the screen) but to the named file. This will overwrite the file. Using >> will redirect the output and append it to the file. Another redirection operator is the vertical bar ( | ), which creates

2074-431: The commands and responses can be displayed using refreshable Braille displays . The general pattern of a command line interface is: In this format, the delimiters between command-line elements are whitespace characters and the end-of-line delimiter is the newline delimiter. This is a widely used (but not universal) convention. A CLI can generally be considered as consisting of syntax and semantics . The syntax

2135-466: The commands. Alternatives to CLIs include GUIs (most notably desktop metaphors with a mouse pointer , such as Microsoft Windows ), text-based user interface menus (such as DOS Shell and IBM AIX SMIT ), and keyboard shortcuts . Compared with a graphical user interface, a command-line interface requires fewer system resources to implement. Since options to commands are given in a few characters in each command line, an experienced user often finds

2196-470: The current landscape of the Internet of Things (IoT), embedded devices are ubiquitous, with cars alone utilizing hundreds of sensors. IoT systems, in contrast to traditional embedded systems, necessitate lower power consumption, enhanced safety and reliability, and the capability for ad hoc networking . The communication layer must facilitate the conversion between diverse protocols, while the application layer should enable cloud computing capabilities over

2257-407: The current time, user, shell number or working directory) in order, for instance, to make the prompt more informative or visually pleasing, to distinguish sessions on various machines, or to indicate the current level of nesting of commands. On some systems, special tokens in the definition of the prompt can be used to cause external programs to be called by the command-line interpreter while displaying

2318-422: The default is the opposite. Renaming of the executables also works: people often rename their favourite editor to EDIT, for example. The command line allows one to restrict available commands, such as access to advanced internal commands. The Windows CMD.EXE does this. Often, shareware programs will limit the range of commands, including printing a command 'your administrator has disabled running batch files' from

2379-400: The evolving demands of embedded development. This led to the evolution of the real-time multitasking kernel into a comprehensive Operating System ( RTOS ), encompassing networking, file management, development, and debugging capabilities. Today, RTOS constitues a global industry. In 1981, Ready System developed VRTX32, the world’s first commercial embedded real-time kernel. In 1993, following

2440-875: 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. OpenWrt, especially its Buildroot build system, has been adopted as the structure for other efforts. For example Embedded operating system Embedded Operating Systems are integral to consumer electronics such as cameras and mobile phones . Additionally, they power automotive electronics , aiding in functions like cruise control and navigation . Moreover, they are essential for factory automation infrastructure . Everyday applications of EOS include office automation devices such as image scanners , photocopiers , and wireless access points . Home automation systems, including security systems , also depend on EOS. Embedded systems comprise

2501-501: The features that are commonly considered to produce structured programs. The Bourne shell led to the development of the KornShell (ksh), Almquist shell (ash), and the popular Bourne-again shell (or Bash). Early microcomputers themselves were based on a command-line interface such as CP/M , DOS or AppleSoft BASIC . During the 1980s and 1990s, the introduction of the Apple Macintosh and of Microsoft Windows on PCs saw

OpenWrt - Misplaced Pages Continue

2562-506: The first Multics shell was developed by Glenda Schroeder . The first Unix shell , the V6 shell , was developed by Ken Thompson in 1971 at Bell Labs and was modeled after Schroeder's Multics shell. The Bourne shell was introduced in 1977 as a replacement for the V6 shell. Although it is used as an interactive command interpreter, it was also intended as a scripting language and contains most of

2623-595: The full processing power of the Central Processing Unit (CPU). Assembly language, being machine-efficient, can enhance speed in deterministic systems but may reduce portability and maintainability . Frequently, embedded operating systems are coded in portable programming languages like C . The concept of a real-time multitasking kernel emerged in the late 1970s. During the 1980s, as embedded systems applications grew in complexity, operating systems with real-time multitasking kernels struggled to meet

2684-412: The grammar represents these operations and data—the symbolic meaning in the syntax. Two different CLIs may agree on either syntax or semantics, but it is only when they agree on both that they can be considered sufficiently similar to allow users to use both CLIs without needing to learn anything, as well as to enable re-use of scripts. A simple CLI will display a prompt, accept a command line typed by

2745-501: The interface mode. At this point, commands from the system mode may not be accessible until the user exits the interface mode and enters the system mode. A command prompt (or just prompt ) is a sequence of (one or more) characters used in a command-line interface to indicate readiness to accept commands. It literally prompts the user to take action. A prompt usually ends with one of the characters $ , % , # , : , > or - and often includes other information, such as

2806-598: The means of interaction with an operator. The mechanical teleprinter was replaced by a "glass tty" , a keyboard and screen emulating the teleprinter. "Smart" terminals permitted additional functions, such as cursor movement over the entire screen, or local editing of data on the terminal for transmission to the computer. As the microcomputer revolution replaced the traditional – minicomputer + terminals – time sharing architecture, hardware terminals were replaced by terminal emulators  — PC software that interpreted terminal signals sent through

2867-461: The newer C:\> style, unless used on floppy drives A: or B:; on those systems PROMPT $ N$ G can be used to override the automatic default and explicitly switch to the older style. Many Unix systems feature the $ PS1 variable (Prompt String 1), although other variables also may affect the prompt (depending on the shell used). In the Bash shell, a prompt of the form: could be set by issuing

2928-610: The non-interactive interface available with punched cards . Today, most computer users rely on graphical user interfaces ("GUIs") instead of CLIs. However, many programs and operating system utilities lack GUIs, and are intended to be used through CLIs. Knowledge of CLIs is also useful for writing scripts . Programs that have CLIs are generally easy to automate via scripting, since command-lines, being mere lines of text, are easy to specify in code. CLIs are made possible by command-line interpreters or command-line processors , which are programs that read command-lines and carry out

2989-515: The operating system. A program that implements such a text interface is often called a command-line interpreter, command processor or shell . Examples of command-line interpreters include Nushell , DEC's DIGITAL Command Language (DCL) in OpenVMS and RSX-11 , the various Unix shells ( sh , ksh , csh , tcsh , zsh , Bash , etc.), CP/M 's CCP , DOS ' COMMAND.COM , as well as the OS/2 and

3050-422: The options easier to access. Automation of repetitive tasks is simplified by line editing and history mechanisms for storing frequently used sequences; this may extend to a scripting language that can take parameters and variable options. A command-line history can be kept, allowing review or repetition of commands. A command-line system may require paper or online manuals for the user's reference, although often

3111-468: The path of the current working directory and the hostname . On many Unix and derivative systems , the prompt commonly ends in $ or % if the user is a normal user, but in # if the user is a superuser ("root" in Unix terminology). End-users can often modify prompts. Depending on the environment, they may include colors, special characters, and other elements (like variables and functions for

SECTION 50

#1732798449506

3172-428: The prompt. Some CLIs, such as those in network routers , have a hierarchy of modes , with a different set of commands supported in each mode. The set of commands are grouped by association with security, system, interface, etc. In these systems the user might traverse through a series of sub-modes. For example, if the CLI had two modes called interface and system , the user might use the command interface to enter

3233-548: The prompt. In DOS' COMMAND.COM and in Windows NT's cmd.exe users can modify the prompt by issuing a PROMPT command or by directly changing the value of the corresponding %PROMPT% environment variable . The default of most modern systems, the C:\>; style is obtained, for instance, with PROMPT $ P$ G . The default of older DOS systems, C> is obtained by just PROMPT , although on some systems this produces

3294-432: The resource limitations of embedded system hardware, operating systems are designed with a narrow scope, tailored to specific applications to ensure optimal operation within hardware constraints. The choice of embedded operating system, which organizes and controls the hardware, often dictates the additional required embedded hardware components. Software developers might write essential code in assembly language to harness

3355-463: The same commands from other command lines (such as the BBC BASIC command line), by preceding the command with a * . A command-line argument or parameter is an item of information provided to a program when it is started. A program can have many command-line arguments that identify sources or destinations of information, or that alter the operation of the program. When a command processor

3416-455: The user terminated by the Enter key , then execute the specified command and provide textual display of results or error messages. Advanced CLIs will validate, interpret and parameter-expand the command line before executing the specified command, and optionally capture or redirect its output. Unlike a button or menu item in a GUI, a command line is typically self-documenting, stating exactly what

3477-410: The user wants done. In addition, command lines usually include many defaults that can be changed to customize the results. Useful command lines can be saved by assigning a character string or alias to represent the full command, or several commands can be grouped to perform a more complex sequence – for instance, compile the program, install it, and run it — creating a single entity, called

3538-615: The user-interface, including fully graphically oriented ones. For example, the default Windows GUI is a shell program named EXPLORER.EXE , as defined in the SHELL=EXPLORER.EXE line in the WIN.INI configuration file. These programs are shells, but not CLIs. Application programs (as opposed to operating systems) may also have command-line interfaces. An application program may support none, any, or all of these three major types of command-line interface mechanisms: Some applications support

3599-568: Was part of the Multics time-sharing operating system . In 1964, MIT Computation Center staff member Louis Pouzin developed the RUNCOM tool for executing command scripts while allowing argument substitution. Pouzin coined the term shell to describe the technique of using commands like a programming language, and wrote a paper about how to implement the idea in the Multics operating system. Pouzin returned to his native France in 1965, and

3660-482: Was started in 2004 after Linksys had built the firmware for their WRT54G series of wireless routers with code licensed under the GNU General Public License . 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

3721-419: Was used for v17.01, with development versions of 18.01 branded OpenWrt, dropping the original cocktail based naming scheme. 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

SECTION 60

#1732798449506
#505494