Htop

Last updated
htop
Original author(s) Hisham Muhammad
Developer(s) Hisham Muhammad (2004–2019)
htop developer team (2020–present)
Initial releaseMay 2004;20 years ago (2004-05) [1]
Stable release
3.3.0 [2]   OOjs UI icon edit-ltr-progressive.svg / 10 January 2024
Repository
Written in C (ncurses library)
Operating system Linux, macOS, FreeBSD, OpenBSD, Solaris, Illumos, OpenIndiana
Type Process Viewer / System monitor
License GPL-2.0-or-later
Website htop.dev

htop is an interactive system monitor process viewer and process manager. It is designed as an alternative to the Unix program top.

Contents

It shows a frequently updated list of the processes running on a computer, normally ordered by the amount of CPU usage. Unlike top, htop provides a full list of processes running, instead of the top resource-consuming processes. htop uses color and gives visual information about processor, swap and memory status. htop can also display the processes as a tree.

Users often deploy htop in cases where Unix top does not provide enough information about the system's processes. htop is also popularly used interactively as a system monitor. [3] Compared to top, it provides a more convenient, visual, cursor-controlled interface for sending signals to processes.

htop is written in the C programming language using the ncurses library. Its name is derived from the original author's first name, as a nod to pinfo, [4] an info-replacement program that does the same. [5]

Because system monitoring interfaces are not standardized among Unix-like operating systems, much of htop's code must be rewritten for each operating system. Cross-platform, OpenBSD, FreeBSD and OS X (now macOS) support was added in htop 2.0. [6] [7] Solaris/Illumos/OpenIndiana support was added in 2.2.0.

htop was forked by several developers as htop-dev, [8] and with support from the original author, the homepage was later redirected to a new domain. [9]

See also

Related Research Articles

<span class="mw-page-title-main">KornShell</span> Bourne shell backward compatible Unix shell created by David Korn

KornShell (ksh) is a Unix shell which was developed by David Korn at Bell Labs in the early 1980s and announced at USENIX on July 14, 1983. The initial development was based on Bourne shell source code. Other early contributors were Bell Labs developers Mike Veach and Pat Sullivan, who wrote the Emacs and vi-style line editing modes' code, respectively. KornShell is backward-compatible with the Bourne shell and includes many features of the C shell, inspired by the requests of Bell Labs users.

<span class="mw-page-title-main">Load (computing)</span> Amount of computational work that a computer system performs

In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.

In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software. The term often implies not merely a development branch, but also a split in the developer community; as such, it is a form of schism. Grounds for forking are varying user preferences and stagnated or discontinued development of the original software.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

chroot Operation that changes the apparent root directory in Unix-like systems

chroot is an operation on Unix and Unix-like operating systems that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name files outside the designated directory tree. The term "chroot" may refer to the chroot(2) system call or the chroot(8) wrapper program. The modified environment is called a chroot jail.

<span class="mw-page-title-main">XNU</span> Computer operating system kernel

XNU is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X operating system and released as free and open-source software as part of the Darwin OS, which, in addition to being the basis for macOS, is also the basis for Apple TV Software, iOS, iPadOS, watchOS, visionOS, and tvOS.

<span class="mw-page-title-main">/dev/random</span> Pseudorandom number generator file in Unix-like operating systems

In Unix-like operating systems, /dev/random and /dev/urandom are special files that serve as cryptographically secure pseudorandom number generators (CSPRNGs). They allow access to a CSPRNG that is seeded with entropy from environmental noise, collected from device drivers and other sources. /dev/random typically blocked if there was less entropy available than requested; more recently it usually blocks at startup until sufficient entropy has been gathered, then unblocks permanently. The /dev/urandom device typically was never a blocking device, even if the pseudorandom number generator seed was not fully initialized with entropy since boot. Not all operating systems implement the same methods for /dev/random and /dev/urandom.

Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a bridge to the actual kernel interfaces.

init UNIX system component

In Unix-based computer operating systems, init is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel during the booting process; a kernel panic will occur if the kernel is unable to start it, or it should die for any reason. Init is typically assigned process identifier 1.

A system monitor is a hardware or software component used to monitor system resources and performance in a computer system.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

<span class="mw-page-title-main">Unix</span> Family of computer operating systems

Unix is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 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, leading to a variety of both academic and commercial Unix variants from vendors including University of California, Berkeley (BSD), Microsoft (Xenix), Sun Microsystems (SunOS/Solaris), HP/HPE (HP-UX), and IBM (AIX).

<span class="mw-page-title-main">Arora (web browser)</span> Free and open-source web browser

Arora is a discontinued free and open-source web browser developed by Benjamin C. Meyer. It was available for Linux, Mac OS X, Windows, FreeBSD, OS/2, Haiku, Genode, and any other operating system supported by the Qt toolkit. The browser's features included tabbed browsing, bookmarks, browsing history, smart location bar, OpenSearch, session management, privacy mode, a download manager, WebInspector, and AdBlock.

systemd Suite of system components for Linux

systemd is a software suite that provides an array of system components for Linux operating systems. The main aim is to unify service configuration and behavior across Linux distributions. Its primary component is a "system and service manager" — an init system used to bootstrap user space and manage user processes. It also provides replacements for various daemons and utilities, including device management, login management, network connection management, and event logging. The name systemd adheres to the Unix convention of naming daemons by appending the letter d. It also plays on the term "System D", which refers to a person's ability to adapt quickly and improvise to solve problems.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, MIPS, PowerPC, RISC-V, s390x, x86/IA-32, x86-64, and some other by 3rd party.

<span class="mw-page-title-main">Borg (backup software)</span> Deduplicating backup program

Borg is deduplicating backup software for various Unix-like operating systems. Borg is notably included in the Debian, Fedora, and Arch repositories.

<span class="mw-page-title-main">Lumina (desktop environment)</span> Desktop environment for X Window System

Lumina Desktop Environment, or simply Lumina, is a plugin-based desktop environment for Unix and Unix-like operating systems. It was designed specifically as a system interface for TrueOS and systems derived from Berkeley Software Distribution (BSD) in general, but it has been ported to various Linux distributions.

References

  1. "GitHub - htop-dev/htop at 80f344559bba331d6daa2c913005e7eefddcf075". GitHub.
  2. "Release 3.3.0". 10 January 2024. Retrieved 19 January 2024.
  3. "System Monitoring with htop". Archived from the original on 2018-06-18. Retrieved 2018-02-05.
  4. "Pinfo - A lynx-style info and man reader". Archived from the original on April 2, 2015. Retrieved November 24, 2014.
  5. "htop FAQ". Archived from the original on January 21, 2014. Retrieved 2012-06-15.
  6. "Going cross-platform: how htop was made portable - FOSDEM 2016". YouTube . 10 February 2016. Archived from the original on 2021-12-21. Retrieved 2016-12-30.
  7. "Htop - an interactive process viewer". Archived from the original on September 27, 2018. Retrieved September 27, 2018.
  8. "Htop forked to htop-dev, version 3.0.0 released with over 2 years of bug fixes and features | Lobsters". lobste.rs. Retrieved 2024-10-04.
  9. "hisham.hm/htop". Hisham Muhammad. Retrieved 2020-12-08.