Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions, it is the first step of preparing a newly installed disk, before any file system is created. The disk stores the information about the partitions' locations and sizes in an area known as the partition table that the operating system reads before any other part of the disk; each partition appears to the operating system as a distinct "logical" disk that uses part of the actual disk. System administrators use a program called a partition editor to create, resize and manipulate the partitions.. Partitioning allows the use of different filesystems to be installed for different kinds of files. Separating user data from system data can prevent the system partition from becoming full and rendering the system unusable. Partitioning can make backing up easier. A disadvantage is that it can be difficult to properly size partitions resulting in having one partition with much free space and another nearly allocated.
This section describes the master boot record partitioning scheme, as used in DOS, Microsoft Windows and Linux on PC-compatible computer systems. As of the mid-2010s, most new computers use the GUID Partition Table partitioning scheme instead. For examples of other partitioning schemes, see the general article on partition tables; the total data storage space of a PC HDD on which MBR partitioning is implemented can contain at most four primary partitions, or alternatively three primary partitions and an extended partition. The Partition Table, located in the master boot record, contains 16-byte entries, each of which describes a partition; the partition type is identified by a 1-byte code found in its partition table entry. Some of these codes may be used to indicate the presence of an extended partition. Most are used by an operating system's bootloader to decide if a partition contains a file system that can be mounted / accessed for reading or writing data. A primary partition contains one file system.
In DOS and all early versions of Microsoft Windows systems, Microsoft required what it called the system partition to be the first partition. All Windows operating systems from Windows 95 onwards can be located on any partition, but the boot files must reside on a primary partition. However, other factors, such as a PC's BIOS may impose specific requirements as to which partition must contain the primary OS; the partition type code for a primary partition can either correspond to a file system contained within or indicate that the partition has a special use. The FAT16 and FAT32 file systems have made use of a number of partition type codes due to the limits of various DOS and Windows OS versions. Though a Linux operating system may recognize a number of different file systems, they have all used the same partition type code: 0x83. An HDD may contain only one extended partition, but that extended partition can be subdivided into multiple logical partitions. DOS/Windows systems may assign a unique drive letter to each logical partition.
With DOS, Microsoft Windows, OS/2, a common practice is to use one primary partition for the active file system that will contain the operating system, the page/swap file, all utilities and user data. On most Windows consumer computers, the drive letter C: is assigned to this primary partition. Other partitions may exist on the HDD that may or may not be visible as drives, such as recovery partitions or partitions with diagnostic tools or data. Microsoft Windows 2000, XP, Windows 7 include a'Disk Management' program which allows for the creation and resizing of FAT and NTFS partitions; the Windows Disk Manager in Windows Vista and Windows 7 utilizes a 1 MB partition alignment scheme, fundamentally incompatible with Windows 2000, XP, OS/2, DOS as well as many other operating systems. On Unix-based and Unix-like operating systems such as Linux, macOS, BSD, Solaris, it is possible to use multiple partitions on a disk device; each partition can be formatted as a swap partition. Multiple partitions allow directories such as /boot, /tmp, /usr, /var, or /home to be allocated their own filesystems.
Such a scheme has a number of advantages: If one file system gets corrupted, the data outside that filesystem/partition may stay intact, minimizing data loss. Specific file systems can be mounted with different parameters e.g. read-only, or with the execution of setuid files disabled. A runaway program that uses up all available space on a non-system filesystem does not fill up critical filesystems. Keeping user data such as documents separate from system files allows the system to be updated with lessened risk of disturbing the data. A common minimal configuration for Linux systems is to use three partitions: one holding the system files mounted on "/", one holding user configuration files and data mounted on /home, a swap partition. By default, macOS systems use a single partition for the entire filesystem and use a swap file inside the file system rather than a swap partition. In Solaris, partitions are sometimes known as slices; this is a conceptual reference to the slicing of a cake into severa
Open-source software is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to study and distribute the software to anyone and for any purpose. Open-source software may be developed in a collaborative public manner. Open-source software is a prominent example of open collaboration. Open-source software development generates an more diverse scope of design perspective than any company is capable of developing and sustaining long term. A 2008 report by the Standish Group stated that adoption of open-source software models have resulted in savings of about $60 billion per year for consumers. In the early days of computing and developers shared software in order to learn from each other and evolve the field of computing; the open-source notion moved to the way side of commercialization of software in the years 1970-1980. However, academics still developed software collaboratively. For example Donald Knuth in 1979 with the TeX typesetting system or Richard Stallman in 1983 with the GNU operating system.
In 1997, Eric Raymond published The Cathedral and the Bazaar, a reflective analysis of the hacker community and free-software principles. The paper received significant attention in early 1998, was one factor in motivating Netscape Communications Corporation to release their popular Netscape Communicator Internet suite as free software; this source code subsequently became the basis behind SeaMonkey, Mozilla Firefox and KompoZer. Netscape's act prompted Raymond and others to look into how to bring the Free Software Foundation's free software ideas and perceived benefits to the commercial software industry, they concluded that FSF's social activism was not appealing to companies like Netscape, looked for a way to rebrand the free software movement to emphasize the business potential of sharing and collaborating on software source code. The new term they chose was "open source", soon adopted by Bruce Perens, publisher Tim O'Reilly, Linus Torvalds, others; the Open Source Initiative was founded in February 1998 to encourage use of the new term and evangelize open-source principles.
While the Open Source Initiative sought to encourage the use of the new term and evangelize the principles it adhered to, commercial software vendors found themselves threatened by the concept of distributed software and universal access to an application's source code. A Microsoft executive publicly stated in 2001 that "open source is an intellectual property destroyer. I can't imagine something that could be worse than this for the software business and the intellectual-property business." However, while Free and open-source software has played a role outside of the mainstream of private software development, companies as large as Microsoft have begun to develop official open-source presences on the Internet. IBM, Oracle and State Farm are just a few of the companies with a serious public stake in today's competitive open-source market. There has been a significant shift in the corporate philosophy concerning the development of FOSS; the free-software movement was launched in 1983. In 1998, a group of individuals advocated that the term free software should be replaced by open-source software as an expression, less ambiguous and more comfortable for the corporate world.
Software licenses grant rights to users which would otherwise be reserved by copyright law to the copyright holder. Several open-source software licenses have qualified within the boundaries of the Open Source Definition; the most prominent and popular example is the GNU General Public License, which "allows free distribution under the condition that further developments and applications are put under the same licence", thus free. The open source label came out of a strategy session held on April 7, 1998 in Palo Alto in reaction to Netscape's January 1998 announcement of a source code release for Navigator. A group of individuals at the session included Tim O'Reilly, Linus Torvalds, Tom Paquin, Jamie Zawinski, Larry Wall, Brian Behlendorf, Sameer Parekh, Eric Allman, Greg Olson, Paul Vixie, John Ousterhout, Guido van Rossum, Philip Zimmermann, John Gilmore and Eric S. Raymond, they used the opportunity before the release of Navigator's source code to clarify a potential confusion caused by the ambiguity of the word "free" in English.
Many people claimed that the birth of the Internet, since 1969, started the open-source movement, while others do not distinguish between open-source and free software movements. The Free Software Foun
The user interface, in the industrial design field of human–computer interaction, is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine from the human end, whilst the machine feeds back information that aids the operators' decision-making process. Examples of this broad concept of user interfaces include the interactive aspects of computer operating systems, hand tools, heavy machinery operator controls, process controls; the design considerations applicable when creating user interfaces are related to or involve such disciplines as ergonomics and psychology. The goal of user interface design is to produce a user interface which makes it easy and enjoyable to operate a machine in the way which produces the desired result; this means that the operator needs to provide minimal input to achieve the desired output, that the machine minimizes undesired outputs to the human. User interfaces are composed of one or more layers including a human-machine interface interfaces machines with physical input hardware such a keyboards, game pads and output hardware such as computer monitors and printers.
A device that implements a HMI is called a human interface device. Other terms for human-machine interfaces are man–machine interface and when the machine in question is a computer human–computer interface. Additional UI layers may interact with one or more human sense, including: tactile UI, visual UI, auditory UI, olfactory UI, equilibrial UI, gustatory UI. Composite user interfaces are UIs that interact with two or more senses; the most common CUI is a graphical user interface, composed of a tactile UI and a visual UI capable of displaying graphics. When sound is added to a GUI it becomes a multimedia user interface. There are three broad categories of CUI: standard and augmented. Standard composite user interfaces use standard human interface devices like keyboards and computer monitors; when the CUI blocks out the real world to create a virtual reality, the CUI is virtual and uses a virtual reality interface. When the CUI does not block out the real world and creates augmented reality, the CUI is augmented and uses an augmented reality interface.
When a UI interacts with all human senses, it is called a qualia interface, named after the theory of qualia. CUI may be classified by how many senses they interact with as either an X-sense virtual reality interface or X-sense augmented reality interface, where X is the number of senses interfaced with. For example, a Smell-O-Vision is a 3-sense Standard CUI with visual display and smells; the user interface or human–machine interface is the part of the machine that handles the human–machine interaction. Membrane switches, rubber keypads and touchscreens are examples of the physical part of the Human Machine Interface which we can see and touch. In complex systems, the human–machine interface is computerized; the term human–computer interface refers to this kind of system. In the context of computing, the term extends as well to the software dedicated to control the physical elements used for human-computer interaction; the engineering of the human–machine interfaces is enhanced by considering ergonomics.
The corresponding disciplines are human factors engineering and usability engineering, part of systems engineering. Tools used for incorporating human factors in the interface design are developed based on knowledge of computer science, such as computer graphics, operating systems, programming languages. Nowadays, we use the expression graphical user interface for human–machine interface on computers, as nearly all of them are now using graphics. There is a difference between a user interface and an operator interface or a human–machine interface; the term "user interface" is used in the context of computer systems and electronic devices Where a network of equipment or computers are interlinked through an MES -or Host to display information. A human-machine interface is local to one machine or piece of equipment, is the interface method between the human and the equipment/machine. An operator interface is the interface method by which multiple equipment that are linked by a host control system is accessed or controlled.
The system may expose several user interfaces to serve different kinds of users. For example, a computerized library database might provide two user interfaces, one for library patrons and the other for library personnel; the user interface of a mechanical system, a vehicle or an industrial installation is sometimes referred to as the human–machine interface. HMI is a modification of the original term MMI. In practice, the abbreviation MMI is still used although some may claim that MMI stands for something different now. Another abbreviation is HCI, but is more used for human–computer interaction. Other terms used are operator interface terminal; however it is abbreviated, the terms refer to the'layer' that separates a human, operating a machine from the machine itself. Without a clean and usable interface, humans would not be able to
Slax is a LiveCD Linux distribution based on Debian and is being developed by Tomáš Matějíček. Packages can be prepared as modules; the tagline for Slax refers to itself as "your pocket operating system". One of the main benefits of the Slax distribution is its ease of customization. Additional software can be removed, using Slax modules. A traditional package manager such as Debian's APT is not required to load additional software. However, APT is supported. Users can modify the default CD image or USB drive installation to customize the packages available in the distribution on boot. Slax allows Debian packages to be converted into Slax modules. Slax modules are compressed read-only SquashFS file system images that are compressed with a LZMA compressor; the various modules are stacked together to build the complete Slax root directory. A supplemental writable layer is put on the top of the stack to implement the write functionality; the stackable file system of choice changed between Slax versions 5 and 6, as did the module file name extension.
The Slax releases before Slax 3 were known as "Slackware-Live". The latest version of Slax is 9.7.0. There were five editions of Slax 5: Slax Standard was the standard edition for normal personal use. Slax KillBill included DOSBox and QEMU to run DOS and Microsoft Windows applications. Slax Server supplied additional Internet functionality and came with pre-configured DNS, DHCP, Samba, HTTP, FTP, MySQL, SMTP, POP3, IMAP and SSH servers and several other server applications. Slax Popcorn was a minimalistic edition focused on multimedia playback, it featured Mozilla Firefox as the default web browser and the lightweight Xfce as a desktop environment instead of KDE. Slax Frodo was a "bare bones" edition, providing only a full-featured text-only environment focused on computers with small amounts of RAM; the Fluxbox Window Manager was an option in all editions except Frodo. Slax 6 is offered in a single version and relies on modules for extra features. From version 6, modules are based on LZMA compression, but some compatibility was provided between the obsolete.mo modules used by Slax version 5 and the more recent.lzm modules of version 6.
As there have been some changes between Linux kernel versions during sub-version releases of Slax 6, the.mo modules of Slax 5 are now considered obsolete. Each module or package should be compiled for compatibility with the Linux kernel in use. Slax version 7 was announced on the developer's blog. Slax 7 supports both 64-bit and 32-bit architectures, according to its download page, "is available in more than 50 languages", it features a stripped down version of KDE 4, a new wallpaper, a new module system. In November 2017, the developer announced the release of version 9; this latest edition is rewritten and is based on Debian, relies on APT to add packages. The default builds contain Fluxbox window manager with a terminal, Chromium web browser, LeafPad text editor, pcmanfm file manager, wicd network manager. Lightweight Linux distribution List of Linux distributions that run from RAM Official website Slax developer's blog Slax at DistroWatch Slax in OpenSourceFeed gallery Customizing Slax ConfigurationsReviews:Everyday Linux User Review of SLAX
CyanogenMod is a discontinued open-source operating system for mobile devices, based on the Android mobile platform. It was developed as free and open-source software based on the official releases of Android by Google, with added original and third-party code, based on a rolling release development model. Although only a subset of total CyanogenMod users elected to report their use of the firmware, on 23 March 2015, some reports indicated that over 50 million people ran CyanogenMod on their phones, it was frequently used as a starting point by developers of other ROMs. In 2013, the founder, Steve Kondik, obtained venture funding under the name Cyanogen Inc. to allow commercialization of the project. However, the company did not, in his view, capitalize on the project's success, in 2016 he left or was forced out as part of a corporate restructure, which involved a change of CEO, closure of offices and projects, cessation of services, therefore left uncertainty over the future of the company.
The code itself, being open source, was forked, its development continues as a community project under the LineageOS name. CyanogenMod offered features and options not found in the official firmware distributed by mobile device vendors. Features supported by CyanogenMod included native theme support, FLAC audio codec support, a large Access Point Name list, Privacy Guard, support for tethering over common interfaces, CPU overclocking and other performance enhancements, unlockable bootloader and root access, soft buttons, status bar customisation and other "tablet tweaks", toggles in the notification pull-down, other interface enhancements. CyanogenMod did not contain bloatware, according to its developers. CyanogenMod was said to increase performance and reliability compared with official firmware releases; the name CyanogenMod derived from cyanogen + Mod. Soon after the introduction of HTC Dream mobile phone in September 2008, a method was discovered to attain privileged control within Android's Linux-based subsystem.
Having root access, combined with the open-source nature of the Android operating system, allowed the phone's stock firmware to be modified and re-installed onto the phone. In the following year, modified firmware for the Dream was developed and distributed by Android enthusiasts. One, maintained by a developer named JesusFreke, became popular among Dream owners. In August 2009, JesusFreke stopped work on his firmware and suggested users to switch to a version of his ROM, further enhanced by developer Cyanogen called "CyanogenMod". CyanogenMod grew in popularity, a community of developers, called the CyanogenMod Team made contributions. Within a few months, the number of devices and features supported by CyanogenMod blossomed, CyanogenMod became one of the popular Android firmware distributions. Similar to many open-source projects, CyanogenMod was developed using a distributed revision control system with the official repositories being hosted on GitHub. Contributors submit new features or bugfix changes using Gerrit.
Contributions may be tested by anyone, voted up or down by registered users, accepted into the code by one of a handful of CyanogenMod developers. A version of ADW. Launcher, an alternative launcher for the Android operating system, became the default launcher on CyanogenMod 5.0.8. The launcher provides additional features not provided by the default Android launcher, including more customization abilities, the ability to backup and restore configuration settings, other features; as of version 9, CyanogenMod's own launcher, Trebuchet, is included with the firmware. CyanogenMod releases were provided on a nightly, "stable version" schedule; some unofficial builds for supported devices were listed in the CyanogenMod Wiki. Current CyanogenMod version list: CyanogenMod 3 CyanogenMod 4 CyanogenMod 5 CyanogenMod 6 CyanogenMod 7 CyanogenMod 9 CyanogenMod 10 CyanogenMod 11 CyanogenMod 12 CyanogenMod 13 CyanogenMod 14.1 CyanogenMod 7 firmware is based on Android 2.3 Gingerbread with additional custom code contributed by the CyanogenMod Team.
The custom portions of CyanogenMod are written by Cyanogen but include contributions from the xda-developers community and code from established open-source projects. CyanogenMod 7 development began. On 15 February 2011, the first release candidates of CyanogenMod 7 were rolled out on several of the supported devices; the fourth release candidate was released on 30 March 2011 and brought increased support for the Nook Co
Replicant (operating system)
Replicant is a free operating system based on the Android mobile platform that aims to replace all proprietary Android components with free-software counterparts. It is available for several smartphones and tablet computers, it is written in the same programming languages as Android, while the modifications are in the C language, as the changes are to the lower-level parts of the OS, such as the Linux kernel and drivers that use it. The name Replicant is drawn from the fictional replicant androids in the Blade Runner movie. Replicant is supported by the Free Software Foundation; the Replicant project started in mid-2010 with an effort to consolidate various initiatives attempting to produce a free-as-in-freedom Android derivative for the HTC Dream device. The original team consisted of Bradley M. Kuhn, Aaron Williamson, Graziano Sorbaioli and Denis ‘GNUtoo’ Carikli; the project led to the writing of replacement code for the non-free parts that were required to make HTC Dream functional. The first component to be replaced permitted audio to work without a proprietary library.
Replicant provided its own FOSS application repository, replaced by F-Droid. The Radio Interface Layer, that handles communication with the modem, was replaced by free code, thus making the telephony part usable. A library handling GPS was adapted from free code, written for another phone and permitted HTC Dream to have GPS working with Replicant. Early versions of Replicant were based on Android Open Source Project code, while versions 2.2 and used CyanogenMod as their base, in order to make supporting more devices easier. In a blog post on February 1, 2017, the Replicant project said, that the future versions of Replicant will be based on LineageOS, as the CyanogenMod project was discontinued; as development continued, many members of the original Replicant team retired from the project, making Denis "GNUtoo" Carikli the only remaining member from the original team still working on the project. In April 2011, Paul Kocialkowski decided to get involved with the project, became the main Replicant developer, after porting it to the Nexus S and Galaxy S devices.
In 2014, Replicant was criticized for lagging behind. "While CyanogenMod is up to 4.4.4, Replicant is still stuck on Android 4.2. CM runs on just about everything, but Replicant is only supported by a handful of devices ranging from two to four years old. Plus, while Replicant aims to replace the proprietary drivers, it doesn't have a complete stack of drivers for any device." When the smartphone operating systems efforts of others, like Mozilla, failed to gain traction, Replicant continued. Replicant is sponsored and supported by the Free Software Foundation, which hosts Replicant's source code; the following table lists the major releases of Replicant: In March 2014, Replicant developers found and closed a vulnerability present in a wide range of Samsung Galaxy products that allowed the baseband processor to read and write the device's storage, sometimes with normal user privileges and sometimes as the root user depending on device model. Replicant's lead developer Paul Kocialkowski claimed it was a backdoor, but this was contested by Dan Rosenberg, a senior security researcher at Azimuth Security, who said there was "virtually no evidence for the ability to remotely execute this functionality".
There is some evidence of similar exploits of Apple hardware that did not involve operating system software, the "methods detailed take direct advantage of Apple’s “firmware” or permanent software programmed onto the device by the manufacturer." The founder of Ubuntu expressed similar concerns. On January 3, 2013, the project released Replicant 4.0 SDK as a libre replacement to Android SDK. The Replicant SDK was released in response to Google updating the license for add-ons and binaries under a proprietary agreement. Replicant's SDK was discontinued on April 2017 in favour of the free SDK packaged by Debian. Scope of the Replicant project has been expanded to include support for new devices, starting with the Nexus One, Nexus S and Galaxy S; as of January 2014, the following devices are supported, with Wi-Fi and Bluetooth requiring proprietary firmware in order to work: Additional target devices are evaluated, based on the suitability of their hardware platforms and required device drivers.
In November 2013, it was announced that Replicant could work on a Fairphone device and that the bootloaders may be free software. The Fairphone team seemed "definitely interested" in helping to get Replicant ported to the device. In December 2014, Fairphone admitted that it had failed to convince chipset vendor MediaTek to open up the source code for first-generation Fairphones. Based on either the unsuitability of their hardware platforms or the lack of available free software drivers, porting Replicant to the devices listed below has been considered and rejected. Replicant lists their minimal requirements as: The device must be supported by LineageOS/CyanogenMod or via 3rd party repos There must be a way to flash images using a free program The kernel must not be signed: the bootloader must not check the kernel signature The kernel sources must have been released The network type must be GSM, no CDMA phone can be supported for now Official website
X86-64 is the 64-bit version of the x86 instruction set. It introduces two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mode. With 64-bit mode and the new paging mode, it supports vastly larger amounts of virtual memory and physical memory than is possible on its 32-bit predecessors, allowing programs to store larger amounts of data in memory. X86-64 expands general-purpose registers to 64-bit, as well extends the number of them from 8 to 16, provides numerous other enhancements. Floating point operations are supported via mandatory SSE2-like instructions, x87/MMX style registers are not used. In 64-bit mode, instructions are modified to support 64-bit addressing mode; the compatibility mode allows 16- and 32-bit user applications to run unmodified coexisting with 64-bit applications if the 64-bit operating system supports them. As the full x86 16-bit and 32-bit instruction sets remain implemented in hardware without any intervening emulation, these older executables can run with little or no performance penalty, while newer or modified applications can take advantage of new features of the processor design to achieve performance improvements.
A processor supporting x86-64 still powers on in real mode for full backward compatibility. The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel and VIA; the AMD K8 processor was the first to implement it. This was the first significant addition to the x86 architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified NetBurst family, software-compatible with AMD's specification. VIA Technologies introduced x86-64 with the VIA Nano; the x86-64 architecture is distinct from the Intel Itanium architecture, not compatible on the native instruction set level with the x86 architecture. Operating systems and applications written for one cannot be run on the other. AMD64 was created as an alternative to the radically different IA-64 architecture, designed by Intel and Hewlett Packard. Announced in 1999 while a full specification became available in August 2000, the AMD64 architecture was positioned by AMD from the beginning as an evolutionary way to add 64-bit computing capabilities to the existing x86 architecture, as opposed to Intel's approach of creating an new 64-bit architecture with IA-64.
The first AMD64-based processor, the Opteron, was released in April 2003. AMD's processors implementing the AMD64 architecture include Opteron, Athlon 64, Athlon 64 X2, Athlon 64 FX, Athlon II, Turion 64, Turion 64 X2, Phenom, Phenom II, FX, Fusion/APU and Ryzen/Epyc; the primary defining characteristic of AMD64 is the availability of 64-bit general-purpose processor registers, 64-bit integer arithmetic and logical operations, 64-bit virtual addresses. The designers took the opportunity to make other improvements as well; some of the most significant changes are described below. 64-bit integer capability All general-purpose registers are expanded from 32 bits to 64 bits, all arithmetic and logical operations, memory-to-register and register-to-memory operations, etc. can now operate directly on 64-bit integers. Pushes and pops on the stack default to 8-byte strides, pointers are 8 bytes wide. Additional registers In addition to increasing the size of the general-purpose registers, the number of named general-purpose registers is increased from eight in x86 to 16.
It is therefore possible to keep more local variables in registers rather than on the stack, to let registers hold accessed constants. AMD64 still has fewer registers than many RISC instruction sets or VLIW-like machines such as the IA-64. However, an AMD64 implementation may have far more internal registers than the number of architectural registers exposed by the instruction set. Additional XMM registers Similarly, the number of 128-bit XMM registers is increased from 8 to 16; the traditional x87 FPU register stack is not included in the register file size extension in 64-bit mode, compared with the XMM registers used by SSE2, which did get extended. The x87 register stack is not a simple register file although it does allow direct access to individual registers by low cost exchange operations. Larger virtual address space The AMD64 architecture defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations; this allows up to 256 TB of virtual address space.
The architecture definition allows this limit to be raised in future implementations to the full 64 bits, exten