A software license is a legal instrument governing the use or redistribution of software. Under United States copyright law all software is copyright protected, in code as object code form. The only exception is software in the public domain, most distributed software can be categorized according to its license type. Two common categories for software under copyright law, and therefore with licenses which grant the licensee specific rights, are proprietary software and free, unlicensed software outside the copyright protection is either public domain software or software which is non-distributed, non-licensed and handled as internal business trade secret. Contrary to popular belief, distributed unlicensed software is copyright protected. Examples for this are unauthorized software leaks or software projects which are placed on public software repositories like GitHub without specified license. As voluntarily handing software into the domain is problematic in some international law domains, there are licenses granting PD-like rights.
Therefore, the owner of a copy of software is legally entitled to use that copy of software. Hence, if the end-user of software is the owner of the respective copy, as many proprietary licenses only enumerate the rights that the user already has under 17 U. S. C. §117, and yet proclaim to take away from the user. Proprietary software licenses often proclaim to give software publishers more control over the way their software is used by keeping ownership of each copy of software with the software publisher. The form of the relationship if it is a lease or a purchase, for example UMG v. Augusto or Vernor v. Autodesk. The ownership of goods, like software applications and video games, is challenged by licensed. The Swiss based company UsedSoft innovated the resale of business software and this feature of proprietary software licenses means that certain rights regarding the software are reserved by the software publisher. Therefore, it is typical of EULAs to include terms which define the uses of the software, the most significant effect of this form of licensing is that, if ownership of the software remains with the software publisher, the end-user must accept the software license.
In other words, without acceptance of the license, the end-user may not use the software at all, one example of such a proprietary software license is the license for Microsoft Windows. The most common licensing models are per single user or per user in the appropriate volume discount level, Licensing per concurrent/floating user occurs, where all users in a network have access to the program, but only a specific number at the same time. Another license model is licensing per dongle which allows the owner of the dongle to use the program on any computer, Licensing per server, CPU or points, regardless the number of users, is common practice as well as site or company licenses
Bzip2 is a free and open-source file compression program that uses the Burrows–Wheeler algorithm. It only compresses single files and is not a file archiver and it is developed and maintained by Julian Seward. Seward made the first public release of bzip2, version 0.15, the compressors stability and popularity grew over the next several years, and Seward released version 1.0 in late 2000. Bzip2 compresses most files more effectively than the older LZW and Deflate compression algorithms, LZMA is generally more space-efficient than bzip2 at the expense of even slower compression speed, while having much faster decompression. Bzip2 compresses data in blocks of size between 100 and 900 kB and uses the Burrows–Wheeler transform to convert frequently-recurring character sequences into strings of identical letters and it applies move-to-front transform and Huffman coding. Bzip2s ancestor bzip used arithmetic coding instead of Huffman, the change was made because of a software patent restriction. Bzip2 performance is asymmetric, as decompression is relatively fast, as of May 2010, this functionality has not been incorporated into the main project.
Like gzip, bzip2 is only a data compressor, thus the sequence AAAAAAABBBBCCCD is replaced with AAAA\3BBBB\0CCCD, where \3 and \0 represent byte values 3 and 0 respectively. Runs of symbols are always transformed after four consecutive symbols, even if the run-length is set to zero, in the worst case, it can cause an expansion of 1.25 and best case a reduction to <0.02. While the specification allows for runs of length 256–259 to be encoded. The author of bzip2 has stated that the RLE step was a mistake and was only intended to protect the original BWT implementation from pathological cases. This is the reversible block-sort that is at the core of bzip2, the block is entirely self-contained, with input and output buffers remaining the same size—in bzip2, the operating limit for this stage is 900 kB. For the block-sort, a matrix is created in which row i contains the whole of the buffer, following rotation, the rows of the matrix are sorted into alphabetic order. A 24-bit pointer is stored marking the position for when the block is untransformed.
In practice, it is not necessary to construct the matrix, rather. The output buffer is the last column of the matrix, this contains the whole buffer, this transform does not alter the size of the processed block. Each of the symbols in use in the document is placed in an array, when a symbol is processed, it is replaced by its location in the array and that symbol is shuffled to the front of the array. The effect is that immediately recurring symbols are replaced by zero symbols, much natural data contains identical symbols that recur within a limited range
ReactOS is a free and open-source operating system for x86/x64 personal computers intended to be binary-compatible with computer programs and device drivers made for Windows Server 2003. Development began in 1996, as a Windows 95 clone project, ReactOS has been noted as a potential open-source drop-in replacement for Windows and for its information on undocumented Windows APIs. As stated on the website, The main goal of the ReactOS project is to provide an operating system which is binary compatible with Windows. Such that people accustomed to the user interface of Windows would find using ReactOS straightforward. The ultimate goal of ReactOS is to allow you to remove Windows, ReactOS is primarily written in C, with some elements, such as ReactOS File Explorer, written in C++. The project partially implements Windows API functionality and has been ported to the AMD64 processor architecture, around 1996, a group of free and open-source software developers started a project called FreeWin95 to implement a clone of Windows 95.
The project stalled in discussions of the design of the system, while FreeWin95 had started out with high expectations, there still had not been any builds released to the public by the end of 1997. As a result, the members, led by coordinator Jason Filby. The revived project sought to duplicate the functionality of Windows NT, in creating the new project, a new name, ReactOS, was chosen. The project began development in February 1998 by creating the basis for a new NT kernel, the name ReactOS was coined during an IRC chat. While the term OS stood for operating system, the term referred to the groups dissatisfaction with –. In 2004, a copyright / license violation of ReactOS GPLed code was found when someone distributed a ReactOS fork under the name Ekush OS, in order to avoid copyright prosecution, ReactOS must be expressively completely distinct and non-derivative from Windows, a goal which needs very careful work. A claim was made on 17 January 2006, by now former developer Hartmut Birr on the ReactOS developers mailing list that ReactOS contained code derived from disassembling Microsoft Windows, the code that Birr disputed involved the function BadStack in syscall. S. as well as other unspecified items.
Comparing this function to disassembled binaries from Windows XP, Birr argued that the BadStack function was simply copy-pasted from Windows XP, on 27 January 2006, the developers responsible for maintaining the ReactOS code repository disabled access after a meeting was held to discuss the allegations. When approached by NewsForge, Microsoft declined to comment about the incident, contributions from several active ReactOS developers have been accepted post-audit, and low level cooperation for bug fixes still occurs. In a statement on its website, ReactOS cited differing legal definitions of what constitutes clean-room reverse engineering as a cause for the conflict, ReactOS clarified that its Intellectual Property Policy Statement requirements on clean room reverse engineering conform to US law. Contributors to its development were not affected by events. In September 2007, with the audit nearing completion, the status was removed from the ReactOS homepage
A filename is a name used to uniquely identify a computer file stored in a file system. Different file systems impose different restrictions on filename lengths and the characters within filenames. Discussions of filenames are complicated by a lack of standardisation of the term, sometimes filename is used to mean the entire name, such as the Windows name c, \directory\myfile. txt. Sometimes, it will be used to refer to the components, sometimes, it is a reference that excludes an extension, so the filename would be just myfile. Such ambiguity is widespread and this article does not attempt to define any one meaning, some systems will adopt their own standardised nomenclature like path name, but these too are not standardised across systems. Around 1962, the Compatible Time-Sharing System introduced the concept of a file, around this same time appeared the dot as a filename extension separator, and the limit to three letter extensions might have come from RAD50 16-bit limits. Traditionally, filenames allowed only alphanumeric characters, but as time progressed and this led to compatibility problems when moving files from one file system to another.
Around 1995, VFAT, an extension to the FAT filesystem, was introduced in Windows 95 and it allowed mixed-case Unicode long filenames, in addition to classic 8.3 names. In 1985, RFC959 officially defined a pathname to be the string that must be entered into a file system by a user in order to identify a file. One issue was migration to Unicode, for this purpose, several software companies provided software for migrating filenames to the new Unicode encoding. Microsoft provided migration transparent for the user throughout the vfat technology Apple provided File Name Encoding Repair Utility v1.0, Mac OS X10.3 marked Apples adoption of Unicode 3.2 character decomposition, superseding the Unicode 2.1 decomposition used previously. This change caused problems for writing software for Mac OS X. An absolute reference includes all directory levels, in some systems, a filename reference that does not include the complete directory path defaults to the current working directory. One advantage of using a reference in program configuration files or scripts is that different instances of the script or program can use different files.
This makes an absolute or relative path composed of a sequence of filenames, Unix-like file systems allow a file to have more than one name, in traditional Unix-style file systems, the names are hard links to the files inode or equivalent. Windows supports hard links on NTFS file systems, and provides the command fsutil in Windows XP, hard links are different from Windows shortcuts, classic Mac OS/macOS aliases, or symbolic links. The introduction of LFNs with VFAT allowed filename aliases, with a maximum of eight plus three characters was a filename alias of long file name. As a way to conform to 8.3 limitations for older programs and this property was used by the move command algorithm that first creates a second filename and only removes the first filename
Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may be embedded within SWF files, there are two different video file formats known as Flash Video, FLV and F4V. The audio and video data within FLV files are encoded in the manner as they are within SWF files. The F4V file format is based on the ISO base media file format and is starting with Flash Player 9 update 3, both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia, in the early 2000s, Flash Video used to be the de facto standard for web-based streaming video. Notable users of it include Hulu, VEVO, Video, Reuters. com, and many other news providers. Flash Video FLV files usually contain material encoded with codecs following the Sorenson Spark or VP6 video compression formats, the most recent public releases of Flash Player support H.264 video and HE-AAC audio.
All of these formats are restricted by patents. Flash Video is viewable on most operating systems via the Adobe Flash Player, apples iOS devices, along with almost all other mobile devices, do not support the Flash Player plugin and so require other delivery methods such as provided by the Adobe Flash Media Server. Support for video in SWF file format was added in Flash Player 6, in 2003, Flash Player 7 added direct support for FLV file format. Because of restrictions in the FLV file format, Adobe Systems has created in 2007 new file formats listed below, Flash Player does not check the extension of the file, but rather looks inside the file to detect which format it is. The new file formats are completely different from the older FLV file format, for example, F4V does not support Screen video, Sorenson Spark, VP6 video compression formats and ADPCM, Nellymoser audio compression formats. Authors of Flash Player strongly encourage everyone to embrace the new file format F4V. There are functional limits with the FLV structure when streaming H.264 or AAC which could not be overcome without a redesign of the file format and this is one reason why Adobe Systems is moving away from the traditional FLV file structure.
Initial format since 2002 is Flash Video, file suffix is. flv with a MIME derived Internet media type of video/x-flv. SWF files published for Flash Player 6 and versions are able to exchange audio, one way to feed data to Flash Media Server is from files in the FLV file format. Starting with SWF files created for Flash Player 7, Flash Player can play FLV file format directly, starting with SWF files created for Flash Player 9 Update 3, Flash Player can play the new F4V file format. Use of the H.264 and AAC compression formats in the FLV file format has some limitations, Flash Video FLV files contain video bit streams which are a proprietary variant of the H.263 video standard, under the name of Sorenson Spark
Graphical user interface
GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces, which require commands to be typed on a computer keyboard. The actions in a GUI are usually performed through direct manipulation of the graphical elements, beyond computers, GUIs are used in many handheld mobile devices such as MP3 players, portable media players, gaming devices and smaller household and industrial controls. Designing the visual composition and temporal behavior of a GUI is an important part of application programming in the area of human–computer interaction. Its goal is to enhance the efficiency and ease of use for the logical design of a stored program. Methods of user-centered design are used to ensure that the language introduced in the design is well-tailored to the tasks. The visible graphical interface features of an application are sometimes referred to as chrome or GUI, users interact with information by manipulating visual widgets that allow for interactions appropriate to the kind of data they hold.
The widgets of an interface are selected to support the actions necessary to achieve the goals of users. A model–view–controller allows a structure in which the interface is independent from and indirectly linked to application functions. This allows users to select or design a different skin at will, good user interface design relates to users more, and to system architecture less. Large widgets, such as windows, usually provide a frame or container for the main presentation content such as a web page, smaller ones usually act as a user-input tool. A GUI may be designed for the requirements of a market as application-specific graphical user interfaces. By the 1990s, cell phones and handheld game systems employed application specific touchscreen GUIs, newer automobiles use GUIs in their navigation systems and multimedia centers, or navigation multimedia center combinations. Sample graphical desktop environments A GUI uses a combination of technologies and devices to provide a platform that users can interact with, a series of elements conforming a visual language have evolved to represent information stored in computers.
This makes it easier for people with few computer skills to work with, the most common combination of such elements in GUIs is the windows, menus, pointer paradigm, especially in personal computers. The WIMP style of interaction uses a virtual device to represent the position of a pointing device, most often a mouse. Available commands are compiled together in menus, and actions are performed making gestures with the pointing device, a window manager facilitates the interactions between windows and the windowing system. The windowing system handles hardware devices such as pointing devices, graphics hardware, window managers and other software combine to simulate the desktop environment with varying degrees of realism. Smaller mobile devices such as personal assistants and smartphones typically use the WIMP elements with different unifying metaphors, due to constraints in space
Gzip is a file format and a software application used for file compression and decompression. The program was created by Jean-loup Gailly and Mark Adler as a free replacement for the compress program used in early Unix systems. Version 0.1 was first publicly released on 31 October 1992, Gzip is based on the DEFLATE algorithm, which is a combination of LZ77 and Huffman coding. DEFLATE was intended as a replacement for LZW and other patent-encumbered data compression algorithms which, at the time, limited the usability of compress, although its file format allows for multiple such streams to be concatenated, gzip is normally used to compress just single files. Compressed archives are created by assembling collections of files into a single tar archive. The final. tar. gz or. tgz file is called a tarball. Gzip is not to be confused with the ZIP archive format, various implementations of the program have been written. The most commonly known is the GNU Projects implementation using Lempel-Ziv coding, openBSDs version of gzip is actually the compress program, to which support for the gzip format was added in OpenBSD3.4.
The g in this specific version stands for gratis and these implementations originally come from NetBSD, and supports decompression of bzip2 and the Unix pack format. The tar utility included in most Linux distributions can extract. tar. gz files by passing the z option, zlib is an abstraction of the DEFLATE algorithm in library form which includes support both for the gzip file format and a lightweight stream format in its API. The zlib stream format, DEFLATE, and the file format were standardized respectively as RFC1950, RFC1951. The gzip format is used in HTTP compression, a used to speed up the sending of HTML. It is one of the three formats for HTTP compression as specified in RFC2616. This RFC specifies a zlib format, which is equal to the gzip format except that gzip adds eleven bytes of overhead in the form of headers and trailers. Still, the format is sometimes recommended over zlib because Microsoft Internet Explorer does not implement the standard correctly. Zlib DEFLATE is used internally by the Portable Network Graphics format, since the late 1990s, bzip2, a file compression utility based on a block-sorting algorithm, has gained some popularity as a gzip replacement.
It produces considerably smaller files, but at the cost of memory, comparison of file archivers Free file format List of archive formats List of Unix programs GNU Gzip home page Original gzip Home Page
The term public domain has two senses of meaning. Anything published is out in the domain in the sense that it is available to the public. Once published and information in books is in the public domain, in the sense of intellectual property, works in the public domain are those whose exclusive intellectual property rights have expired, have been forfeited, or are inapplicable. Examples for works not covered by copyright which are therefore in the domain, are the formulae of Newtonian physics, cooking recipes. Examples for works actively dedicated into public domain by their authors are reference implementations of algorithms, NIHs ImageJ. The term is not normally applied to situations where the creator of a work retains residual rights, as rights are country-based and vary, a work may be subject to rights in one country and be in the public domain in another. Some rights depend on registrations on a basis, and the absence of registration in a particular country, if required. Although the term public domain did not come into use until the mid-18th century, the Romans had a large proprietary rights system where they defined many things that cannot be privately owned as res nullius, res communes, res publicae and res universitatis.
The term res nullius was defined as not yet appropriated. The term res communes was defined as things that could be enjoyed by mankind, such as air, sunlight. The term res publicae referred to things that were shared by all citizens, when the first early copyright law was first established in Britain with the Statute of Anne in 1710, public domain did not appear. However, similar concepts were developed by British and French jurists in the eighteenth century, instead of public domain they used terms such as publici juris or propriété publique to describe works that were not covered by copyright law. The phrase fall in the domain can be traced to mid-nineteenth century France to describe the end of copyright term. In this historical context Paul Torremans describes copyright as a coral reef of private right jutting up from the ocean of the public domain. Because copyright law is different from country to country, Pamela Samuelson has described the public domain as being different sizes at different times in different countries.
According to James Boyle this definition underlines common usage of the public domain and equates the public domain to public property. However, the usage of the public domain can be more granular. Such a definition regards work in copyright as private property subject to fair use rights, the materials that compose our cultural heritage must be free for all living to use no less than matter necessary for biological survival
Free and open-source software
Free and open-source software is computer software that can be classified as both free software and open-source software. This is in contrast to proprietary software, where the software is under restrictive copyright, the benefits of using FOSS can include decreasing software costs, increasing security and stability, protecting privacy, and giving users more control over their own hardware. Free, open-source operating systems such as Linux and descendents of BSD are widely utilized today, powering millions of servers, smartphones, Free software licenses and open-source licenses are used by many software packages. In the 1950s, 1960s, and 1970s to 1980s, it was common for users to have the source code for all programs they used. Software, including source code, was shared by individuals who used computers. Most companies had a model based on hardware sales, and provided or bundled software with hardware. Organizations of users and suppliers were formed to facilitate the exchange of software, for example, SHARE, by the late 1960s, the prevailing business model around software was changing.
In United States vs. IBM, filed 17 January 1969, while some software might always be free, there would be a growing amount of software that was for sale only. Software development for the GNU operating system began in January 1984, an article outlining the project and its goals was published in March 1985 titled the GNU Manifesto. The manifesto included significant explanation of the GNU philosophy, Free Software Definition, the Linux kernel, started by Linus Torvalds, was released as freely modifiable source code in 1991. Initially, Linux was not released under a free or open-source software license, with version 0.12 in February 1992, he relicensed the project under the GNU General Public License. Much like Unix, Torvalds kernel attracted the attention of volunteer programmers, freeBSD and NetBSD were released as free software when the USL v. BSDi lawsuit was settled out of court in 1993. OpenBSD forked from NetBSD in 1995, in 1995, The Apache HTTP Server, commonly referred to as Apache, was released under the Apache License 1.0.
In 1997, Eric Raymond published The Cathedral and the Bazaar and this code is today better known as Mozilla Firefox and Thunderbird. Netscapes act prompted Raymond and others to look into how to bring the FSFs free software ideas, the new name they chose was open source, and quickly Bruce Perens, publisher Tim OReilly, Linus Torvalds, and others signed on to the rebranding. The Open Source Initiative was founded in February 1998 to encourage use of the new term, a Microsoft executive publicly stated in 2001 that open source is an intellectual property destroyer. I cant imagine something that could be worse than this for the software business and this view perfectly summarizes the initial response to FOSS by some software corporations. IBM, Oracle and State Farm are just a few of the companies with a serious public stake in todays competitive open-source market, there has been a significant shift in the corporate philosophy concerning the development of free and open-source software
Linux is a Unix-like computer operating system assembled under the model of free and open-source software development and distribution. The defining component of Linux is the Linux kernel, an operating system kernel first released on September 17,1991 by Linus Torvalds, the Free Software Foundation uses the name GNU/Linux to describe the operating system, which has led to some controversy. Linux was originally developed for computers based on the Intel x86 architecture. Because of the dominance of Android on smartphones, Linux has the largest installed base of all operating systems. Linux is the operating system on servers and other big iron systems such as mainframe computers. It is used by around 2. 3% of desktop computers, the Chromebook, which runs on Chrome OS, dominates the US K–12 education market and represents nearly 20% of the sub-$300 notebook sales in the US. Linux runs on embedded systems – devices whose operating system is built into the firmware and is highly tailored to the system.
This includes TiVo and similar DVR devices, network routers, facility automation controls, many smartphones and tablet computers run Android and other Linux derivatives. The development of Linux is one of the most prominent examples of free, the underlying source code may be used and distributed—commercially or non-commercially—by anyone under the terms of its respective licenses, such as the GNU General Public License. Typically, Linux is packaged in a known as a Linux distribution for both desktop and server use. Distributions intended to run on servers may omit all graphical environments from the standard install, because Linux is freely redistributable, anyone may create a distribution for any intended use. The Unix operating system was conceived and implemented in 1969 at AT&Ts Bell Laboratories in the United States by Ken Thompson, Dennis Ritchie, Douglas McIlroy, first released in 1971, Unix was written entirely in assembly language, as was common practice at the time. Later, in a key pioneering approach in 1973, it was rewritten in the C programming language by Dennis Ritchie, the availability of a high-level language implementation of Unix made its porting to different computer platforms easier.
Due to an earlier antitrust case forbidding it from entering the computer business, as a result, Unix grew quickly and became widely adopted by academic institutions and businesses. In 1984, AT&T divested itself of Bell Labs, freed of the legal obligation requiring free licensing, the GNU Project, started in 1983 by Richard Stallman, has the goal of creating a complete Unix-compatible software system composed entirely of free software. Later, in 1985, Stallman started the Free Software Foundation, by the early 1990s, many of the programs required in an operating system were completed, although low-level elements such as device drivers and the kernel were stalled and incomplete. Linus Torvalds has stated that if the GNU kernel had been available at the time, although not released until 1992 due to legal complications, development of 386BSD, from which NetBSD, OpenBSD and FreeBSD descended, predated that of Linux. Torvalds has stated that if 386BSD had been available at the time, although the complete source code of MINIX was freely available, the licensing terms prevented it from being free software until the licensing changed in April 2000
C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while providing facilities for low-level memory manipulation and it was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance and flexibility of use as its design highlights. C++ is a language, with implementations of it available on many platforms and provided by various organizations, including the Free Software Foundation, LLVM, Intel. C++ is standardized by the International Organization for Standardization, with the latest standard version ratified and published by ISO in December 2014 as ISO/IEC14882,2014. The C++ programming language was standardized in 1998 as ISO/IEC14882,1998. The current C++14 standard supersedes these and C++11, with new features, the C++17 standard is due in 2017, with the draft largely implemented by some compilers already, and C++20 is the next planned standard thereafter. Many other programming languages have influenced by C++, including C#, D, Java.
In 1979, Bjarne Stroustrup, a Danish computer scientist, began work on C with Classes, the motivation for creating a new language originated from Stroustrups experience in programming for his Ph. D. thesis. When Stroustrup started working in AT&T Bell Labs, he had the problem of analyzing the UNIX kernel with respect to distributed computing, remembering his Ph. D. experience, Stroustrup set out to enhance the C language with Simula-like features. C was chosen because it was general-purpose, portable, as well as C and Simulas influences, other languages influenced C++, including ALGOL68, Ada, CLU and ML. Initially, Stroustrups C with Classes added features to the C compiler, including classes, derived classes, strong typing, furthermore, it included the development of a standalone compiler for C++, Cfront. In 1985, the first edition of The C++ Programming Language was released, the first commercial implementation of C++ was released in October of the same year. In 1989, C++2.0 was released, followed by the second edition of The C++ Programming Language in 1991.
New features in 2.0 included multiple inheritance, abstract classes, static functions, const member functions. In 1990, The Annotated C++ Reference Manual was published and this work became the basis for the future standard. Later feature additions included templates, namespaces, new casts, after a minor C++14 update released in December 2014, various new additions are planned for 2017 and 2020. According to Stroustrup, the name signifies the nature of the changes from C. This name is credited to Rick Mascitti and was first used in December 1983, when Mascitti was questioned informally in 1992 about the naming, he indicated that it was given in a tongue-in-cheek spirit