In computer science, an associative array, symbol table, or dictionary is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection. Operations associated with this data type allow: the addition of a pair to the collection the removal of a pair from the collection the modification of an existing pair the lookup of a value associated with a particular keyThe dictionary problem is a classic computer science problem: the task of designing a data structure that maintains a set of data during'search','delete', and'insert' operations; the two major solutions to the dictionary problem are a search tree. In some cases it is possible to solve the problem using directly addressed arrays, binary search trees, or other more specialized structures. Many programming languages include associative arrays as primitive data types, they are available in software libraries for many others. Content-addressable memory is a form of direct hardware-level support for associative arrays.
Associative arrays have many applications including such fundamental programming patterns as memoization and the decorator pattern. The name does not come from the associative property known in mathematics. Rather, it arises from the fact. In an associative array, the association between a key and a value is known as a "binding", the same word "binding" may be used to refer to the process of creating a new association; the operations that are defined for an associative array are: Add or insert: add a new pair to the collection, binding the new key to its new value. The arguments to this operation are the value. Reassign: replace the value in one of the pairs that are in the collection, binding an old key to a new value; as with an insertion, the arguments to this operation are the value. Remove or delete: remove a pair from the collection, unbinding a given key from its value; the argument to this operation is the key. Lookup: find the value, bound to a given key; the argument to this operation is the key, the value is returned from the operation.
If no value is found, some associative array implementations raise an exception, while others create a pair with the given key and the default value of the value type. Instead of add or reassign there is a single set operation that adds a new pair if one does not exist, otherwise reassigns it. In addition, associative arrays may include other operations such as determining the number of bindings or constructing an iterator to loop over all the bindings. For such an operation, the order in which the bindings are returned may be arbitrary. A multimap generalizes an associative array by allowing multiple values to be associated with a single key. A bidirectional map is a related abstract data type in which the bindings operate in both directions: each value must be associated with a unique key, a second lookup operation takes a value as argument and looks up the key associated with that value. Suppose that the set of loans made by a library is represented in a data structure; each book in a library may be checked out only by a single library patron at a time.
However, a single patron may be able to check out multiple books. Therefore, the information about which books are checked out to which patrons may be represented by an associative array, in which the books are the keys and the patrons are the values. Using notation from Python or JSON, the data structure would be: A lookup operation on the key "Great Expectations" would return "John". If John returns his book, that would cause a deletion operation, if Pat checks out a book, that would cause an insertion operation, leading to a different state: For dictionaries with small numbers of bindings, it may make sense to implement the dictionary using an association list, a linked list of bindings. With this implementation, the time to perform the basic dictionary operations is linear in the total number of bindings. Another simple implementation technique, usable when the keys are restricted to a narrow range of integers, is direct addressing into an array: the value for a given key k is stored at the array cell A, or if there is no binding for k the cell stores a special sentinel value that indicates the absence of a binding.
As well as being simple, this technique is fast: each dictionary operation takes constant time. However, the space requirement for this structure is the size of the entire keyspace, making it impractical unless the keyspace is small; the two major approaches to implementing dictionaries are a search tree. The most used general purpose implementation of an associative array is with a hash table: an array combined with a hash function that separates each key into a separate "bucket" of the array; the basic idea behind a hash table is that accessing an element of an array via its index is a simple, constant-time operation. Therefore, the average overhead of an operation for a hash table is only the computation of the key's hash
A system monitor is a hardware or software component used to monitor system resources and performance in a computer system. A hardware monitor is common component of modern motherboards, which can either come as a separate chip interfaced through I²C or SMBus, or as part of a Super I/O solution interfaced through Low Pin Count; these devices make it possible to monitor temperature in the chassis, voltage supplied to the motherboard by the power supply unit and the speed of the computer fans that are connected directly to one of the fan headers on the motherboard. Many of these hardware monitors have fan controlling capabilities. System monitoring software like SpeedFan on Windows, lm_sensors on GNU/Linux, envstat on NetBSD, sysctl hw.sensors on OpenBSD and DragonFly can interface with these chips to relay this environmental sensor information to the user. Software monitors occur more sometimes as a part of a widget engine; these monitoring systems are used to keep track of system resources, such as CPU usage and frequency, or the amount of free RAM.
They are used to display items such as free space on one or more hard drives, the temperature of the CPU and other important components, networking information including the system IP address and current rates of upload and download. Other possible displays may include the date and time, system uptime, computer name, hard drive S. M. A. R. T. Data, fan speeds, the voltages being provided by the power supply. Less common are hardware-based systems monitoring similar information. Customarily these occupy one or more drive bays on the front of the computer case, either interface directly with the system hardware or connect to a software data-collection system via USB. With either approach to gathering data, the monitoring system displays information on a small LCD panel or on series of small analog or LED numeric displays; some hardware-based system monitors allow direct control of fan speeds, allowing the user to customize the cooling in the system. A few high-end models of hardware system monitor are designed to interface with only a specific model of motherboard.
These systems directly utilize the sensors built into the system, providing more detailed and accurate information than less-expensive monitoring systems customarily provide. Single system: Distributed: Application performance management Application service management I²C and SMBus Network monitoring Mean time between failures Intelligent Platform Management Interface System profiler Website monitoring Monitoring a Linux System with X11/Console/Web-Based Tools
MacOS is a series of graphical operating systems developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac family of computers. Within the market of desktop and home computers, by web usage, it is the second most used desktop OS, after Microsoft Windows.macOS is the second major series of Macintosh operating systems. The first is colloquially called the "classic" Mac OS, introduced in 1984, the final release of, Mac OS 9 in 1999; the first desktop version, Mac OS X 10.0, was released in March 2001, with its first update, 10.1, arriving that year. After this, Apple began naming its releases after big cats, which lasted until OS X 10.8 Mountain Lion. Since OS X 10.9 Mavericks, releases have been named after locations in California. Apple shortened the name to "OS X" in 2012 and changed it to "macOS" in 2016, adopting the nomenclature that they were using for their other operating systems, iOS, watchOS, tvOS; the latest version is macOS Mojave, publicly released in September 2018.
Between 1999 and 2009, Apple sold. The initial version, Mac OS X Server 1.0, was released in 1999 with a user interface similar to Mac OS 8.5. After this, new versions were introduced concurrently with the desktop version of Mac OS X. Beginning with Mac OS X 10.7 Lion, the server functions were made available as a separate package on the Mac App Store.macOS is based on technologies developed between 1985 and 1997 at NeXT, a company that Apple co-founder Steve Jobs created after leaving the company. The "X" in Mac OS X and OS X is pronounced as such; the X was a prominent part of the operating system's brand identity and marketing in its early years, but receded in prominence since the release of Snow Leopard in 2009. UNIX 03 certification was achieved for the Intel version of Mac OS X 10.5 Leopard and all releases from Mac OS X 10.6 Snow Leopard up to the current version have UNIX 03 certification. MacOS shares its Unix-based core, named Darwin, many of its frameworks with iOS, tvOS and watchOS.
A modified version of Mac OS X 10.4 Tiger was used for the first-generation Apple TV. Releases of Mac OS X from 1999 to 2005 ran on the PowerPC-based Macs of that period. After Apple announced that they were switching to Intel CPUs from 2006 onwards, versions were released for 32-bit and 64-bit Intel-based Macs. Versions from Mac OS X 10.7 Lion run on 64-bit Intel CPUs, in contrast to the ARM architecture used on iOS and watchOS devices, do not support PowerPC applications. The heritage of what would become macOS had originated at NeXT, a company founded by Steve Jobs following his departure from Apple in 1985. There, the Unix-like NeXTSTEP operating system was developed, launched in 1989; the kernel of NeXTSTEP is based upon the Mach kernel, developed at Carnegie Mellon University, with additional kernel layers and low-level user space code derived from parts of BSD. Its graphical user interface was built on top of an object-oriented GUI toolkit using the Objective-C programming language. Throughout the early 1990s, Apple had tried to create a "next-generation" OS to succeed its classic Mac OS through the Taligent and Gershwin projects, but all of them were abandoned.
This led Apple to purchase NeXT in 1996, allowing NeXTSTEP called OPENSTEP, to serve as the basis for Apple's next generation operating system. This purchase led to Steve Jobs returning to Apple as an interim, the permanent CEO, shepherding the transformation of the programmer-friendly OPENSTEP into a system that would be adopted by Apple's primary market of home users and creative professionals; the project was first code named "Rhapsody" and officially named Mac OS X. Mac OS X was presented as the tenth major version of Apple's operating system for Macintosh computers. Previous Macintosh operating systems were named using Arabic numerals, as with Mac OS 8 and Mac OS 9; the letter "X" in Mac OS X's name refers to a Roman numeral. It is therefore pronounced "ten" in this context. However, it is commonly pronounced like the letter "X"; the first version of Mac OS X, Mac OS X Server 1.0, was a transitional product, featuring an interface resembling the classic Mac OS, though it was not compatible with software designed for the older system.
Consumer releases of Mac OS X included more backward compatibility. Mac OS applications could be rewritten to run natively via the Carbon API; the consumer version of Mac OS X was launched in 2001 with Mac OS X 10.0. Reviews were variable, with extensive praise for its sophisticated, glossy Aqua interface but criticizing it for sluggish performance. With Apple's popularity at a low, the makers of several classic Mac applications such as FrameMaker and PageMaker declined to develop new versions of their software for Mac OS X. Ars Technica columnist John Siracusa, who reviewed every major OS X release up to 10.10, described the early releases in retrospect as'dog-slow, feature poor' and Aqua as'unbearably slow and a huge resource hog'. Apple developed several new releases of Mac OS X. Siracusa's review of version 10.3, noted "It's strange to have gone from years of uncertainty and vaporware to a steady annual supply of major new operating system releases." Version 10.4, Tiger shocked executives at Microsoft by offering a number of features, such as fast file s
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution. It was the first open-source BSD descendant released after 386BSD was forked, it continues to be developed and is available for many platforms, including servers, handheld devices, embedded systems. The NetBSD project focuses on code clarity, careful design, portability across many computer architectures, its source code is permissively licensed. NetBSD was derived from the 4.3BSD-Reno release of the Berkeley Software Distribution from the Computer Systems Research Group of the University of California, via their Net/2 source code release and the 386BSD project. The NetBSD project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development; the four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass, Charles Hannum, felt that a more open development model would benefit the project: one centered on portable, correct code.
They aimed to produce a multi-platform, production-quality, BSD-based operating system. The name "NetBSD" was suggested by De Raadt, based on the importance and growth of networks such as the Internet at that time, the distributed, collaborative nature of its development; the NetBSD source code repository was established on 21 March 1993 and the first official release, NetBSD 0.8, was made on 19 April 1993. This was derived from 386BSD 0.1 plus the version 0.2.2 unofficial patchkit, with several programs from the Net/2 release missing from 386BSD re-integrated, various other improvements. The first multi-platform release, NetBSD 1.0, was made in October 1994, being updated with 4.4BSD-Lite sources, it was free of all encumbered 4.3BSD Net/2 code. In 1994, for disputed reasons, one of the founders, Theo de Raadt, was removed from the project, he founded a new project, OpenBSD, from a forked version of NetBSD 1.0 near the end of 1995. In 1998, NetBSD 1.3 introduced the pkgsrc packages collection.
Until 2004, NetBSD 1.x releases were made at annual intervals, with minor "patch" releases in between. From release 2.0 onwards, NetBSD uses semantic versioning, each major NetBSD release corresponds to an incremented major version number, i.e. the major releases following 2.0 are 3.0, 4.0 and so on. The previous minor releases are now divided into two categories: x.y "stable" maintenance releases and x.y.z releases containing only security and critical fixes. As the project's motto suggests, NetBSD has been ported to a large number of 32- and 64-bit architectures; these range from VAX minicomputers to Pocket PC PDAs. As of 2009, NetBSD supports 57 hardware platforms; the kernel and userland for these platforms are all built from a central unified source-code tree managed by CVS. Unlike other kernels such as μClinux, the NetBSD kernel requires the presence of an MMU in any given target architecture. NetBSD's portability is aided by the use of hardware abstraction layer interfaces for low-level hardware access such as bus input/output or DMA.
Using this portability layer, device drivers can be split into "machine-independent" and "machine-dependent" components. This makes a single driver usable on several platforms by hiding hardware access details, reduces the work to port it to a new system; this permits a particular device driver for a PCI card to work without modifications, whether it is in a PCI slot on an IA-32, PowerPC, SPARC, or other architecture with a PCI bus. A single driver for a specific device can operate via several different buses, like ISA, PCI, or PC Card. In comparison, Linux device driver code must be reworked for each new architecture; as a consequence, in porting efforts by NetBSD and Linux developers, NetBSD has taken much less time to port to new hardware. This platform independence aids the development of embedded systems since NetBSD 1.6, when the entire toolchain of compilers, assemblers and other tools support cross-compiling. In 2005, as a demonstration of NetBSD's portability and suitability for embedded applications, Technologic Systems, a vendor of embedded systems hardware and demonstrated a NetBSD-powered kitchen toaster.
Commercial ports to embedded platforms, including the AMD Geode LX800, Freescale PowerQUICC processors, Marvell Orion, AMCC 405 family of PowerPC processors, Intel XScale IOP and IXP series, were available from and supported by Wasabi Systems. The NetBSD cross-compiling framework lets a developer build a complete NetBSD system for an architecture from a more powerful system of different architecture, including on a different operating system. Several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost. NetBSD features pkgsrc, a framework for building and managing third-party application software packages; the pkgsrc collection consists of more than 18,000 packages as of April 2018. Building and installing packages such as KDE, GNOME, the Apache HTTP Server or Perl is performed through the use of a system of makefiles; this can automatically fetch the source code, patch, configure and install the package such that it can be removed again later.
An alternative to compiling from source is to use a precompiled binary package. In either case, any prerequisites/dependencies will be installed automatically by the package system, without need for manual intervention. Pkgsrc supports not only NetBSD, but several other BSD variants like
Douglas Crockford first popularized the JSON format. The acronym originated at State Software, a company co-founded by Crockford and others in March 2001; the co-founders agreed to build a system that used standard browser capabilities and provided an abstraction layer for Web developers to create stateful Web applications that had a persistent duplex connection to a Web server by holding two HTTP connections open and recycling them before standard browser time-outs if no further data were exchanged. The co-founders had a round-table discussion and voted whether to call the data format JSML or JSON, as well as under what license type to make it available. Crockford, being inspired by the words of President Bush, should be credited with coming up with the "evil-doers" JSON license in order to open-source the JSON libraries, but force corporate lawyers, or those who are overly pedantic, to seek to pay for a license from State. Chip Morningstar developed the idea for the State Application Framework at State Software.
String: a sequence of zero or more Unicode characters. Strings support a backslash escaping syntax. Boolean: either of the values true or false Array: an ordered list of zero or more values, each of which may be of any type. Arrays use square bracket elements are comma-separated. Object: an unordered collection of name–value pairs where the names are strings. Since objects are intended to represent associative arrays, it is recommended, though not required, that each key is unique within an object. Objects are delimited with curly brackets and use commas to separate each pair, while within each pair the colon':' character separates the key or name from its value. Null: An empty value, using the word nullLimited whitespace is allowed and ignored around or between syntactic elements. Only four specific characters are considered whitespace for this purpose: space, horizontal tab, line feed, carriage return. In particular, the byte orde
Application software is software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, an email client,a media player, a file viewer, an aeronautical flight simulator, a console game or a photo editor; the collective noun application software refers to all applications collectively. This contrasts with system software, involved with running the computer. Applications may be bundled with the computer and its system software or published separately, may be coded as proprietary, open-source or university projects. Apps built for mobile platforms are called mobile apps. In information technology, an application, application program or software application is a computer program designed to help people perform an activity. An application thus differs from an operating system, a utility, a programming tool. Depending on the activity for which it was designed, an application can manipulate text, audio, graphics, or a combination of these elements.
Some application packages focus on a single task, such as word processing. User-written software tailors systems to meet the user's specific needs. User-written software includes spreadsheet templates, word processor macros, scientific simulations, audio and animation scripts. Email filters are a kind of user software. Users create this software themselves and overlook how important it is; the delineation between system software such as operating systems and application software is not exact, is the object of controversy. For example, one of the key questions in the United States v. Microsoft Corp. antitrust trial was whether Microsoft's Internet Explorer web browser was part of its Windows operating system or a separable piece of application software. As another example, the GNU/Linux naming controversy is, in part, due to disagreement about the relationship between the Linux kernel and the operating systems built over this kernel. In some types of embedded systems, the application software and the operating system software may be indistinguishable to the user, as in the case of software used to control a VCR, DVD player or microwave oven.
The above definitions may exclude some applications that may exist on some computers in large organizations. For an alternative definition of an app: see Application Portfolio Management; the word "application", once used as an adjective, is not restricted to the "of or pertaining to application software" meaning. For example, concepts such as application programming interface, application server, application virtualization, application lifecycle management and portable application apply to all computer programs alike, not just application software; some applications are available in versions for several different platforms. Sometimes a new and popular application arises which only runs on one platform, increasing the desirability of that platform; this is called a killer killer app. For example, VisiCalc was the first modern spreadsheet software for the Apple II and helped selling the then-new personal computers into offices. For Blackberry it was their email software. In recent years, the shortened term "app" has become popular to refer to applications for mobile devices such as smartphones and tablets, the shortened form matching their smaller scope compared to applications on PCs.
More the shortened version is used for desktop application software as well. There are many different and not alternative ways in order to order and classify application software. By the legal point of view, application software is classified with a black box approach, in relation to the rights of its final end-users or subscribers. Software applications are classified in respect of the programming language in which the source code is written or executed, respect of their purpose and outputs. Application software is distinguished among two main classes: closed source vs open source software applications, among free or proprietary software applications. Proprietary software is placed under the exclusive copyright, a software license grants limited usage rights; the open-closed principle states that software may be "open only for extension, but not for modification". Such applications can only get add-on by third-parties. Free and open-source software shall be run, sold or extended for any purpose, -being open- shall be modified or reversed in the same way.
Apple Inc. is an American multinational technology company headquartered in Cupertino, that designs and sells consumer electronics, computer software, online services. It is considered one of the Big Four of technology along with Amazon and Facebook; the company's hardware products include the iPhone smartphone, the iPad tablet computer, the Mac personal computer, the iPod portable media player, the Apple Watch smartwatch, the Apple TV digital media player, the HomePod smart speaker. Apple's software includes the macOS and iOS operating systems, the iTunes media player, the Safari web browser, the iLife and iWork creativity and productivity suites, as well as professional applications like Final Cut Pro, Logic Pro, Xcode, its online services include the iTunes Store, the iOS App Store, Mac App Store, Apple Music, Apple TV+, iMessage, iCloud. Other services include Apple Store, Genius Bar, AppleCare, Apple Pay, Apple Pay Cash, Apple Card. Apple was founded by Steve Jobs, Steve Wozniak, Ronald Wayne in April 1976 to develop and sell Wozniak's Apple I personal computer, though Wayne sold his share back within 12 days.
It was incorporated as Apple Computer, Inc. in January 1977, sales of its computers, including the Apple II, grew quickly. Within a few years and Wozniak had hired a staff of computer designers and had a production line. Apple went public in 1980 to instant financial success. Over the next few years, Apple shipped new computers featuring innovative graphical user interfaces, such as the original Macintosh in 1984, Apple's marketing advertisements for its products received widespread critical acclaim. However, the high price of its products and limited application library caused problems, as did power struggles between executives. In 1985, Wozniak departed Apple amicably and remained an honorary employee, while Jobs and others resigned to found NeXT; as the market for personal computers expanded and evolved through the 1990s, Apple lost market share to the lower-priced duopoly of Microsoft Windows on Intel PC clones. The board recruited CEO Gil Amelio to what would be a 500-day charge for him to rehabilitate the financially troubled company—reshaping it with layoffs, executive restructuring, product focus.
In 1997, he led Apple to buy NeXT, solving the failed operating system strategy and bringing Jobs back. Jobs pensively regained leadership status, becoming CEO in 2000. Apple swiftly returned to profitability under the revitalizing Think different campaign, as he rebuilt Apple's status by launching the iMac in 1998, opening the retail chain of Apple Stores in 2001, acquiring numerous companies to broaden the software portfolio. In January 2007, Jobs renamed the company Apple Inc. reflecting its shifted focus toward consumer electronics, launched the iPhone to great critical acclaim and financial success. In August 2011, Jobs resigned as CEO due to health complications, Tim Cook became the new CEO. Two months Jobs died, marking the end of an era for the company. Apple is well known for its size and revenues, its worldwide annual revenue totaled $265 billion for the 2018 fiscal year. Apple is the world's largest information technology company by revenue and the world's third-largest mobile phone manufacturer after Samsung and Huawei.
In August 2018, Apple became the first public U. S. company to be valued at over $1 trillion. The company employs 123,000 full-time employees and maintains 504 retail stores in 24 countries as of 2018, it operates the iTunes Store, the world's largest music retailer. As of January 2018, more than 1.3 billion Apple products are in use worldwide. The company has a high level of brand loyalty and is ranked as the world's most valuable brand. However, Apple receives significant criticism regarding the labor practices of its contractors, its environmental practices and unethical business practices, including anti-competitive behavior, as well as the origins of source materials. Apple Computer Company was founded on April 1, 1976, by Steve Jobs, Steve Wozniak, Ronald Wayne; the company's first product is the Apple I, a computer designed and hand-built by Wozniak, first shown to the public at the Homebrew Computer Club. Apple I was sold as a motherboard —a base kit concept which would now not be marketed as a complete personal computer.
The Apple I went on sale in July 1976 and was market-priced at $666.66. Apple Computer, Inc. was incorporated on January 3, 1977, without Wayne, who had left and sold his share of the company back to Jobs and Wozniak for $800 only twelve days after having co-founded Apple. Multimillionaire Mike Markkula provided essential business expertise and funding of $250,000 during the incorporation of Apple. During the first five years of operations revenues grew exponentially, doubling about every four months. Between September 1977 and September 1980, yearly sales grew from $775,000 to $118 million, an average annual growth rate of 533%; the Apple II invented by Wozniak, was introduced on April 16, 1977, at the first West Coast Computer Faire. It differs from its major rivals, the TRS-80 and Commodore PET, because of its character cell-based color graphics and open architecture. While early Apple II models use ordinary cassette tapes as storage devices, they were superseded by the introduction of a 5 1⁄4-inch floppy disk drive and interface called the Disk II.
The Apple II was chosen to be the desktop platform for the first "killer app" of the business world: VisiCalc, a spreadsheet program. VisiCalc created a business market for the Apple II and gave home users an additional reason to buy an Apple II: compatibility with the office. Before VisiCalc, Apple had been a distant third place c