A file format is a standard way that information is encoded for storage in a computer file . It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free .
100-467: The Android Package with the file extension apk is the file format used by the Android operating system , and a number of other Android-based operating systems for distribution and installation of mobile apps , mobile games and middleware . A file using this format can be built from source code written in either Java or Kotlin . APK files can be generated and signed from Android App Bundles . APK
200-432: A dedicated x64 edition ) has x64 editions. The first version of Windows NT to support ARM64 devices with Qualcomm processors was Windows 10, version 1709 . This is a full version of Windows, rather than the cut-down Windows RT . The minimum hardware specification required to run each release of the professional workstation version of Windows NT has been fairly slow-moving until the 6.0 (Vista) release, which requires
300-502: A taskbar and Start menu ), which originally appeared in Windows 95 . The first release was given version number 3.1 to match the contemporary 16-bit Windows; magazines of that era claimed the number was also used to make that version seem more reliable than a ".0" release. Also the Novell IPX protocol was apparently licensed only to 3.1 versions of Windows software. The NT version number
400-455: A 64-bit kernel and 64-bit memory addressing. Windows NT is a group or family of products — like Windows is a group or family. Windows NT is a sub-grouping of Windows. The first version of Windows NT, 3.1 , was produced for workstation and server computers. It was commercially focused — and intended to complement consumer versions of Windows that were based on MS-DOS (including Windows 1.0 through Windows 3.1x ). In 1996, Windows NT 4.0
500-401: A TCP/IP stack derived at first from a STREAMS -based stack from Spider Systems , then later rewritten in-house). Windows NT 3.1 was the first version of Windows to use 32-bit flat virtual memory addressing on 32-bit processors. Its companion product, Windows 3.1, used segmented addressing and switches from 16-bit to 32-bit addressing in pages. Windows NT 3.1 featured a core kernel providing
600-599: A basis for the Windows Subsystem for Linux (WSL) platform on the PC version of Windows 10. On August 9, 2019, HarmonyOS came with APK compatibility via AOSP base with Linux kernel on HarmonyOS 1.0 for TVs and also June 2, 2021, HarmonyOS 2.0 version expanded to smartphones and tablets until Galaxy Edition version under HarmonyOS NEXT system for the next iterative HarmonyOS 5 beta to commercial version, starting in Q2, June 2024. At
700-434: A byte frequency distribution to build the representative models for file type and use any statistical and data mining techniques to identify file types. There are several types of ways to structure data in a file. The most usual ones are described below. Earlier file formats used raw data formats that consisted of directly dumping the memory images of one or more structures into the file. This has several drawbacks. Unless
800-408: A company logo may be needed both in .eps format (for publishing) and .png format (for web sites). With the extensions visible, these would appear as the unique filenames: " CompanyLogo.eps " and " CompanyLogo.png ". On the other hand, hiding the extensions would make both appear as " CompanyLogo ", which can lead to confusion. Hiding extensions can also pose a security risk. For example,
900-520: A few bytes long. The metadata contained in a file header are usually stored at the start of the file, but might be present in other areas too, often including the end, depending on the file format or the type of data contained. Character-based (text) files usually have character-based headers, whereas binary formats usually have binary headers, although this is not a rule. Text-based file headers usually take up more space, but being human-readable, they can easily be examined by using simple software such as
1000-448: A file based on the end of its name, more specifically the letters following the final period. This portion of the filename is known as the filename extension . For example, HTML documents are identified by names that end with .html (or .htm ), and GIF images by .gif . In the original FAT file system , file names were limited to an eight-character identifier and a three-character extension, known as an 8.3 filename . There are
1100-401: A file format is to use information regarding the format stored inside the file itself, either information meant for this purpose or binary strings that happen to always be in specific locations in files of some formats. Since the easiest place to locate them is at the beginning, such area is usually called a file header when it is greater than a few bytes , or a magic number if it is just
SECTION 10
#17328803415551200-416: A file unusable (or "lose" it) by renaming it incorrectly. This led most versions of Windows and Mac OS to hide the extension when listing files. This prevents the user from accidentally changing the file type, and allows expert users to turn this feature off and display the extensions. Hiding the extension, however, can create the appearance of two or more identical filenames in the same folder. For example,
1300-401: A formal specification document, letting precedent set by other already existing programs that use the format define the format via how these existing programs use it. If the developer of a format does not publish free specifications, another developer looking to utilize that kind of file must either reverse engineer the file to find out how to read it or acquire the specification document from
1400-399: A hierarchical structure, known as a conformance hierarchy. Thus, public.png conforms to a supertype of public.image , which itself conforms to a supertype of public.data . A UTI can exist in multiple hierarchies, which provides great flexibility. In addition to file formats, UTIs can also be used for other entities which can exist in macOS, including: In IBM OS/VS through z/OS ,
1500-465: A layered design architecture that consists of two main components, user mode and kernel mode . Programs and subsystems in user mode are limited in terms of what system resources they have access to, while the kernel mode has unrestricted access to the system memory and external devices. Kernel mode in Windows NT has full access to the hardware and system resources of the computer. The Windows NT kernel
1600-442: A limited number of three-letter extensions, which can cause a given extension to be used by more than one program. Many formats still use three-character extensions even though modern operating systems and application programs no longer have this limitation. Since there is no standard list of extensions, more than one format can use the same extension, which can confuse both the operating system and users. One artifact of this approach
1700-414: A malicious user could create an executable program with an innocent name such as " Holiday photo.jpg.exe ". The " .exe " would be hidden and an unsuspecting user would see " Holiday photo.jpg ", which would appear to be a JPEG image, usually unable to harm the machine. However, the operating system would still see the " .exe " extension and run the program, which would then be able to cause harm to
1800-408: A particular file's format, with each approach having its own advantages and disadvantages. Most modern operating systems and individual applications need to use all of the following approaches to read "foreign" file formats, if not work with them completely. One popular method used by many operating systems, including Windows , macOS , CP/M , DOS , VMS , and VM/CMS , is to determine the format of
1900-636: A portable operating system, compatible with OS/2 and POSIX and supporting multiprocessing , in October 1988. When development started in November 1989, Windows NT was to be known as OS/2 3.0, the third version of the operating system developed jointly by Microsoft and IBM . To ensure portability, initial development was targeted at the Intel i860 XR RISC processor , switching to the MIPS R3000 in late 1989, and then
2000-520: A revision of Windows NT, even though the Windows NT name itself has not been used in many other Windows releases since Windows NT 4.0 in 1996. Windows NT provides many more features than other Windows releases, among them being support for multiprocessing , multi-user systems , a "pure" 32-bit kernel with 32-bit memory addressing, support for instruction sets other than x86 , and many other system services such as Active Directory and more. Newer versions of Windows NT support 64-bit computing , with
2100-441: A sorted index). Also, data must be read from the file itself, increasing latency as opposed to metadata stored in the directory. Where file types do not lend themselves to recognition in this way, the system must fall back to metadata. It is, however, the best way for a program to check if the file it has been told to process is of the correct format: while the file's name or metadata may be altered independently of its content, failing
SECTION 20
#17328803415552200-431: A specialized editor or IDE . However, this feature was often the source of user confusion, as which program would launch when the files were double-clicked was often unpredictable. RISC OS uses a similar system, consisting of a 12-bit number which can be looked up in a table of descriptions—e.g. the hexadecimal number FF5 is "aliased" to PoScript , representing a PostScript file. A Uniform Type Identifier (UTI)
2300-470: A stripped-down version of the Windows operating system. Windows 11 is the first non-server version of Windows NT that does not support 32-bit platforms. The 64-bit versions of Windows NT were originally intended to run on Itanium and DEC Alpha ; the latter was used internally at Microsoft during early development of 64-bit Windows. This continued for some time after Microsoft publicly announced that it
2400-444: A system API, running in supervisor mode (ring 0 in x86; referred to in Windows NT as "kernel mode" on all platforms), and a set of user-space environments with their own APIs which included the new Win32 environment, an OS/2 1.3 text-mode environment and a POSIX environment. The full preemptive multitasking kernel could interrupt running tasks to schedule other tasks, without relying on user programs to voluntarily give up control of
2500-485: A text editor or a hexadecimal editor. As well as identifying the file format, file headers may contain metadata about the file and its contents. For example, most image files store information about image format, size, resolution and color space , and optionally authoring information such as who made the image, when and where it was made, what camera model and photographic settings were used ( Exif ), and so on. Such metadata may be used by software reading or interpreting
2600-495: A value in a company/standards organization database), and the 2 following digits categorize the type of file in hexadecimal . The final part is composed of the usual filename extension of the file or the international standard number of the file, padded left with zeros. For example, the PNG file specification has the FFID of 000000001-31-0015948 where 31 indicates an image file, 0015948
2700-548: A very small amount written in assembly language . C is mostly used for the kernel code while C++ is mostly used for user-mode code. Assembly language is avoided where possible because it would impede portability . The following are the releases of Windows based on the Windows NT technology. Windows NT 3.1 to 3.51 incorporated the Program Manager and File Manager from the Windows 3.1x series. Windows NT 4.0 onwards replaced those programs with Windows Explorer (including
2800-630: A way of identifying what type of file was attached to an e-mail , independent of the source and target operating systems. MIME types identify files on BeOS , AmigaOS 4.0 and MorphOS , as well as store unique application signatures for application launching. In AmigaOS and MorphOS, the Mime type system works in parallel with Amiga specific Datatype system. There are problems with the MIME types though; several organizations and people have created their own MIME types without registering them properly with IANA, which makes
2900-428: A well-designed magic number test is a pretty sure sign that the file is either corrupt or of the wrong type. On the other hand, a valid magic number does not guarantee that the file is not corrupt or is of a correct type. So-called shebang lines in script files are a special case of magic numbers. Here, the magic number is human-readable text that identifies a specific command interpreter and options to be passed to
3000-512: Is a hybrid kernel ; the architecture comprises a simple kernel , hardware abstraction layer (HAL), drivers, and a range of services (collectively named Executive ), which all exist in kernel mode. The booting process of Windows NT begins with NTLDR in versions before Vista and the Windows Boot Manager in Vista and later. The boot loader is responsible for accessing the file system on
3100-473: Is a proprietary graphical operating system produced by Microsoft as part of its Windows product line, the first version of which, Windows NT 3.1 , was released on July 27, 1993. Originally made for the workstation , office, and server markets, the Windows NT line was made available to consumers with the release of Windows XP in 2001. The underlying technology of Windows NT continues to exist to this day with incremental changes and improvements, with
apk (file format) - Misplaced Pages Continue
3200-528: Is a method used in macOS for uniquely identifying "typed" classes of entities, such as file formats. It was developed by Apple as a replacement for OSType (type & creator codes). The UTI is a Core Foundation string , which uses a reverse-DNS string. Some common and standard types use a domain called public (e.g. public.png for a Portable Network Graphics image), while other domains can be used for third-party types (e.g. com.adobe.pdf for Portable Document Format ). UTIs can be defined within
3300-407: Is a risk that the file format can be misinterpreted. It may even have been badly written at the source. This can result in corrupt metadata which, in extremely bad cases, might even render the file unreadable. A more complex example of file headers are those used for wrapper (or container) file formats. One way to incorporate file type metadata, often associated with Unix and its derivatives,
3400-463: Is achieved on IA-32 via an integrated DOS Virtual Machine – although this feature is not available on other architectures. NT has supported per-object (file, function, and role) access control lists allowing a rich set of security permissions to be applied to systems and services. NT has also supported Windows network protocols, inheriting the previous OS/2 LAN Manager networking, as well as TCP/IP networking (for which Microsoft used to implement
3500-446: Is an extensible scheme of persistent, unique, and unambiguous identifiers for file formats, which has been developed by The National Archives of the UK as part of its PRONOM technical registry service. PUIDs can be expressed as Uniform Resource Identifiers using the info:pronom/ namespace. Although not yet widely used outside of the UK government and some digital preservation programs,
3600-576: Is analogous to other software packages such as APPX in Microsoft Windows , APP for HarmonyOS or a Debian package in Debian -based operating systems. To make an APK file, a program for Android is first compiled using a tool such as Android Studio or Visual Studio and then all of its parts are packaged into one container file. An APK file contains all of a program's code (such as .dex files), resources, assets, certificates, and manifest file . As
3700-466: Is not now generally used for marketing purposes, but is still used internally, and said to reflect the degree of changes to the core of the operating system. However, for application compatibility reasons, Microsoft kept the major version number as 6 in releases following Vista, but changed it later to 10 in Windows 10. The build number is an internal identifier used by Microsoft's developers and beta testers. Starting with Windows 8.1 , Microsoft changed
3800-424: Is small, and/or that chunks do not contain other chunks; many formats do not impose those requirements. The information that identifies a particular "chunk" may be called many different things, often terms including "field name", "identifier", "label", or "tag". The identifiers are often human-readable, and classify parts of the data: for example, as a "surname", "address", "rectangle", "font name", etc. These are not
3900-427: Is that the system can easily be tricked into treating a file as a different format simply by renaming it — an HTML file can, for instance, be easily treated as plain text by renaming it from filename.html to filename.txt . Although this strategy was useful to expert users who could easily understand and manipulate this information, it was often confusing to less technical users, who could accidentally make
4000-425: Is the case with many file formats, APK files can have any name needed, but it may be required that the file name ends in the file extension for being recognized as such. Most Android implementations allow users to manually install APK files only after they turn on an "Unknown Sources" setting that allows installation from sources other than trusted ones like Google Play . One may do so for many reasons, such as during
4100-637: Is the standard number and 000000001 indicates the International Organization for Standardization (ISO). Another less popular way to identify the file format is to examine the file contents for distinguishable patterns among file types. The contents of a file are a sequence of bytes and a byte has 256 unique permutations (0–255). Thus, counting the occurrence of byte patterns that is often referred to as byte frequency distribution gives distinguishable patterns to identify file types. There are many content-based file type identification schemes that use
apk (file format) - Misplaced Pages Continue
4200-475: Is to store a "magic number" inside the file itself. Originally, this term was used for a specific set of 2-byte identifiers at the beginnings of files, but since any binary sequence can be regarded as a number, any feature of a file format which uniquely distinguishes it can be used for identification. GIF images, for instance, always begin with the ASCII representation of either GIF87a or GIF89a , depending upon
4300-590: The Amazon Appstore . At 2015 Build, Microsoft had also announced an Android runtime environment for Windows 10 Mobile known as "Astoria", which would allow Android apps to run in an emulated environment with minimal changes, and have access to Microsoft platform APIs such as Bing Maps and Xbox Live as nearly drop-in replacements for equivalent Google Mobile Services . Google Mobile Services and certain core APIs would not be available, and apps with "deep integration into background tasks" were said to poorly support
4400-629: The GIF file format required the use of a patented algorithm, and though the patent owner did not initially enforce their patent, they later began collecting royalty fees . This has resulted in a significant decrease in the use of GIFs, and is partly responsible for the development of the alternative PNG format. However, the GIF patent expired in the US in mid-2003, and worldwide in mid-2004. Different operating systems have traditionally taken different approaches to determining
4500-588: The Intel i386 in 1990. Microsoft also continued parallel development of the DOS-based and less resource -demanding Windows environment, resulting in the release of Windows 3.0 in May 1990. Windows 3.0 was eventually so successful that Microsoft decided to change the primary application programming interface for the still unreleased NT OS/2 (as it was then known) from an extended OS/2 API to an extended Windows API . This decision caused tension between Microsoft and IBM and
4600-455: The Ogg format can act as a container for different types of multimedia including any combination of audio and video , with or without text (such as subtitles ), and metadata . A text file can contain any stream of characters, including possible control characters , and is encoded in one of various character encoding schemes . Some file formats, such as HTML , scalable vector graphics , and
4700-725: The PowerPC processor in 1995, specifically PReP -compliant systems such as the IBM ThinkPad Power Series laptops and Motorola PowerStack series; but despite meetings between Michael Spindler and Bill Gates, not on the Power Macintosh as the PReP compliant Power Macintosh project failed to ship. Intergraph Corporation ported Windows NT to its Clipper architecture and later announced an intention to port Windows NT 3.51 to Sun Microsystems ' SPARC architecture, in conjunction with
4800-677: The Windows 11 announcement event in June 2021, Microsoft showcased the new Windows Subsystem for Android (WSA) that will enable support for the Android Open Source Project (AOSP) and will allow users to run Android apps on their Windows desktop. Microsoft confirmed users will be able to sideload Android apps onto Windows and that it would be possible to install APK files downloaded from third-party sources. On March 5, 2024, Microsoft announced to end its Android apps on Windows 11 subsystem by March 5, 2025, as part of its effort to depreciate
4900-516: The Windows 8 -derived Windows RT on October 26, 2012, and the use of Windows NT, rather than Windows CE, in Windows Phone 8 . The original Xbox and Xbox 360 run a custom operating system based upon a heavily modified version of Windows 2000 , an approach that Microsoft engineer Don Box called "fork and run". It exports APIs similar to those found in Microsoft Windows , such as Direct3D . The Xbox One and Xbox Series X/S consoles use
5000-614: The Windows Preinstallation Environment , which is a lightweight version of Windows NT made for deployment of the operating system. Since Windows Vista, the Windows installation files, as well as the preinstallation environment used to install Windows, are stored in the Windows Imaging Format . It is possible to use the Deployment Image Servicing and Management (DISM) tool to install Windows from
5100-468: The source code of computer software are text files with defined syntaxes that allow them to be used for specific purposes. File formats often have a published specification describing the encoding method and enabling testing of program intended functionality. Not all formats have freely available specification documents, partly because some developers view their specification documents as trade secrets , and partly because other developers never author
SECTION 50
#17328803415555200-467: The ASCII representation formed a sequence of meaningful characters, such as an abbreviation of the application's name or the developer's initials. For instance a HyperCard "stack" file has a creator of WILD (from Hypercard's previous name, "WildCard") and a type of STAK . The BBEdit text editor has a creator code of R*ch referring to its original programmer, Rich Siegel . The type code specifies
5300-503: The Alpha NT 5 (Windows 2000) release had reached RC1 status. On January 5, 2011, Microsoft announced that the next major version of the Windows NT family will include support for the ARM architecture . Microsoft demonstrated a preliminary version of Windows (version 6.2.7867) running on an ARM-based computer at the 2011 Consumer Electronics Show . This eventually led to the commercial release of
5400-551: The CPU, as in Windows 3.1 Windows applications (although MS-DOS applications were preemptively multitasked in Windows starting with Windows/386 ). Notably, in Windows NT 3.x, several I/O driver subsystems, such as video and printing, were user-mode subsystems. In Windows NT 4.0, the video, server, and printer spooler subsystems were moved into kernel mode. Windows NT's first GUI was strongly influenced by (and programmatically compatible with) that from Windows 3.1; Windows NT 4.0's interface
5500-471: The DEC Alpha. Windows NT and VMS memory management , processes , and scheduling are very similar. Windows NT's process management differs by implementing threading , which DEC did not implement until VMS 7.0 in 1995. Like VMS, Windows NT's kernel mode code distinguishes between the "kernel", whose primary purpose is to implement processor- and architecture-dependent functions, and the "executive". This
5600-509: The PUID scheme does provide greater granularity than most alternative schemes. MIME types are widely used in many Internet -related applications, and increasingly elsewhere, although their usage for on-disc type information is rare. These consist of a standardised system of identifiers (managed by IANA ) consisting of a type and a sub-type , separated by a slash —for instance, text/html or image/gif . These were originally intended as
5700-715: The VSAM catalog (prior to ICF catalogs ) and the VSAM Volume Record in the VSAM Volume Data Set (VVDS) (with ICF catalogs) identifies the type of VSAM dataset. In IBM OS/360 through z/OS , a format 1 or 7 Data Set Control Block (DSCB) in the Volume Table of Contents (VTOC) identifies the Dataset Organization ( DSORG ) of the dataset described by it. The HPFS , FAT12, and FAT16 (but not FAT32) filesystems allow
5800-578: The Version API Helper functions' behavior. If an application is not manifested for Windows 8.1 or later, the API will always return version 6.2, which is the version number of Windows 8 . This is because the manifest feature was introduced with Windows 8.1, to replace GetVersion and related functions. In order to prevent Intel x86 -specific code from slipping into the operating system, due to developers being used to developing on x86 chips, Windows NT 3.1
5900-639: The Windows NT driver model, and is incompatible with older driver frameworks. With Windows 2000 , the Windows NT driver model was enhanced to become the Windows Driver Model , which was first introduced with Windows 98 , but was based on the NT driver model. Windows Vista added native support for the Windows Driver Foundation , which is also available for Windows XP , Windows Server 2003 and to an extent, Windows 2000 . Microsoft decided to create
6000-442: The appropriate icons, but these will be located in different places on the storage medium thus taking longer to access. A folder containing many files with complex metadata such as thumbnail information may require considerable time before it can be displayed. If a header is binary hard-coded such that the header itself needs complex interpretation in order to be recognized, especially for metadata content protection's sake, there
6100-538: The boot drive, starting the kernel , and loading boot-time device drivers into memory. Once all the boot and system drivers have been loaded, the kernel starts the Session Manager Subsystem . This process launches winlogon , which allows the user to login. Once the user is logged in File Explorer is started, loading the graphical user interface of Windows NT. Windows NT is written in C and C++ , with
SECTION 60
#17328803415556200-452: The collaboration ultimately fell apart. IBM continued OS/2 development alone while Microsoft continued work on the newly renamed Windows NT. Though neither operating system would immediately be as popular as Microsoft's MS-DOS or Windows products, Windows NT would eventually be far more successful than OS/2. Microsoft hired a group of developers from Digital Equipment Corporation led by Dave Cutler to build Windows NT, and many elements of
6300-450: The command interpreter. Another operating system using magic numbers is AmigaOS , where magic numbers were called "Magic Cookies" and were adopted as a standard system to recognize executables in Hunk executable file format and also to let single programs, tools and utilities deal automatically with their saved data files, or any other kind of file types when saving and loading data. This system
6400-447: The command line and skip the GUI installer. It has been suggested that Dave Cutler intended the initialism "WNT" as a play on VMS , incrementing each letter by one . However, the project was originally intended as a follow-on to OS/2 and was referred to as "NT OS/2" before receiving the Windows brand. One of the original NT developers, Mark Lucovsky , states that the name was taken from
6500-660: The company's planned introduction of UltraSPARC models in 1995, but neither version was sold to the public as a retail product. Only two of the Windows NT 4.0 variants (IA-32 and Alpha) have a full set of service packs available. All of the other ports done by third parties (Motorola, Intergraph, etc.) have few, if any, publicly available updates. Windows NT 4.0 was the last major release to support Alpha, MIPS, or PowerPC, though development of Windows 2000 for Alpha continued until August 1999, when Compaq stopped support for Windows NT on that architecture; and then three days later Microsoft also canceled their AlphaNT program, even though
6600-431: The computer. The same is true with files with only one extension: as it is not shown to the user, no information about the file can be deduced without explicitly investigating the file. To further trick users, it is possible to store an icon inside the program, in which case some operating systems' icon assignment for the executable file ( .exe ) would be overridden with an icon commonly used to represent JPEG images, making
6700-419: The data must be entirely parsed by applications. On Unix and Unix-like systems, the ext2 , ext3 , ext4 , ReiserFS version 3, XFS , JFS , FFS , and HFS+ filesystems allow the storage of extended attributes with files. These include an arbitrary list of "name=value" strings, where the names are unique and a value can be accessed through its related name. The PRONOM Persistent Unique Identifier (PUID)
6800-401: The design reflect earlier DEC experience with Cutler's VMS , VAXELN and RSX-11 , but also an unreleased object-based operating system developed by Cutler at Digital codenamed MICA . The team was joined by selected members of the disbanded OS/2 team, including Moshe Dunie . Although NT was not an exact clone of Cutler's previous operating systems, DEC engineers almost immediately noticed
6900-430: The destination, the single file received has to be unzipped by a compatible utility to be useful. The problems of handling metadata are solved this way using zip files or archive files. The Mac OS ' Hierarchical File System stores codes for creator and type as part of the directory entry for each file. These codes are referred to as OSTypes. These codes could be any 4-byte sequence but were often selected so that
7000-470: The development of apps, to install apps not found on the store, or to install an older version of an existing app. Blackberry Limited supported Android 4.1 Jelly Bean apps and up through Android Runtime to now discontinued Blackberry 10 through the January 2014 10.2.1 firmware update. On June 18, 2014, BlackBerry announced an official relationship with Amazon.com , which resulted in the 10.3 update bundling
7100-487: The environment. On February 25, 2016, after already having delayed it in November 2015, Microsoft announced that "Astoria" would be shelved, arguing that it was redundant to the native Windows Bridge toolkit since iOS is already a primary target for mobile app development. The company also encouraged use of products from Xamarin (which they had acquired the previous day) for multi-platform app development using C# programming language instead. Portions of Astoria were used as
7200-511: The executive. Routines from each are directly accessible, as for example from kernel-mode device drivers. API sets in the Windows NT family are implemented as subsystems atop the publicly undocumented "native" API ; this allowed the late adoption of the Windows API (into the Win32 subsystem). Windows NT was one of the earliest operating systems to use UCS-2 and UTF-16 internally. Windows NT uses
7300-435: The file during the loading process and afterwards. File headers may be used by an operating system to quickly gather information about a file without loading it all into memory, but doing so uses more of a computer's resources than reading directly from the directory information. For instance, when a graphic file manager has to display the contents of a folder, it must read the headers of many files before it can display
7400-448: The file format's definition. Throughout the 1970s, many programs used formats of this general kind. For example, word-processors such as troff , Script , and Scribe , and database export files such as CSV . Electronic Arts and Commodore - Amiga also used this type of file format in 1985, with their IFF (Interchange File Format) file format. A container is sometimes called a "chunk" , although "chunk" may also imply that each piece
7500-761: The file, each of which is a string, such as "Plain Text" or "HTML document". Thus a file may have several types. The NTFS filesystem also allows storage of OS/2 extended attributes, as one of the file forks , but this feature is merely present to support the OS/2 subsystem (not present in XP), so the Win32 subsystem treats this information as an opaque block of data and does not use it. Instead, it relies on other file forks to store meta-information in Win32-specific formats. OS/2 extended attributes can still be read and written by Win32 programs, but
7600-471: The format of the file, while the creator code specifies the default program to open it with when double-clicked by the user. For example, the user could have several text files all with the type code of TEXT , but each open in a different program, due to having differing creator codes. This feature was intended so that, for example, human-readable plain-text files could be opened in a general-purpose text editor, while programming or HTML code files would open in
7700-463: The format will be identified correctly, and can often determine more precise information about the file. Since reasonably reliable "magic number" tests can be fairly complex, and each file must effectively be tested against every possibility in the magic database, this approach is relatively inefficient, especially for displaying large lists of files (in contrast, file name and metadata-based methods need to check only one piece of data, and match it against
7800-586: The format's developers for a fee and by signing a non-disclosure agreement . The latter approach is possible only when a formal specification document exists. Both strategies require significant time, money, or both; therefore, file formats with publicly available specifications tend to be supported by more programs. Patent law, rather than copyright , is more often used to protect a file format. Although patents for file formats are not directly permitted under US law, some formats encode data using patented algorithms . For example, prior to 2004, using compression with
7900-535: The internal similarities. Parts of VAX/VMS Internals and Data Structures , published by Digital Press , accurately describe Windows NT internals using VMS terms. Furthermore, parts of the NT codebase's directory structure and filenames matched that of the MICA codebase. Instead of a lawsuit, Microsoft agreed to pay DEC $ 65–100 million, help market VMS, train Digital personnel on Windows NT, and continue Windows NT support for
8000-432: The latest version of Windows based on Windows NT being Windows 11 in 2021. The name "Windows NT" originally denoted the major technological advancements that it had introduced to the Windows product line, including eliminating the 16-bit memory access limitations of earlier Windows releases such as Windows 3.1 and the Windows 9x series. Each Windows release built on this technology is considered to be based on, if not
8100-515: The main data and the name, but is also less portable than either filename extensions or "magic numbers", since the format has to be converted from filesystem to filesystem. While this is also true to an extent with filename extensions— for instance, for compatibility with MS-DOS 's three character limit— most forms of storage have a roughly equivalent definition of a file's data and name, but may have varying or no representation of further metadata. Note that zip files or archive files solve
8200-430: The memory images also have reserved spaces for future extensions, extending and improving this type of structured file is very difficult. It also creates files that might be specific to one platform or programming language (for example a structure containing a Pascal string is not recognized as such in C ). On the other hand, developing tools for reading and writing these types of files is very simple. The limitations of
8300-571: The names of releases from Windows 2000 and later, though Microsoft described that product as being "Built on NT Technology". "NT" was a trademark of Northern Telecom (later Nortel ), which Microsoft was forced to acknowledge on the product packaging. One of the main purposes of NT is hardware and software portability. Various versions of NT family operating systems have been released for a variety of processor architectures, initially IA-32 , MIPS , and DEC Alpha , with PowerPC , Itanium , x86-64 and ARM supported in later releases. An initial idea
8400-414: The original target processor—the Intel i860 , code-named N10 ("N-Ten"). A 1991 video featuring Bill Gates and Microsoft products specifically says that "Windows NT stands for 'New Technology'". Seven year later in 1998, during a question-and-answer (Q&A) session, he then revealed that the letters were previously expanded to such but no longer carry any specific meaning. The letters were dropped from
8500-416: The problem of handling metadata. A utility program collects multiple files together along with metadata about each file and the folders/directories they came from all within one new file (e.g. a zip file with extension .zip ). The new file is also compressed and possibly encrypted, but now is transmissible as a single file across operating systems by FTP transmissions or sent by email as an attachment. At
8600-447: The program look like an image. Extensions can also be spoofed: some Microsoft Word macro viruses create a Word file in template format and save it with a .doc extension. Since Word generally ignores extensions and looks at the format of the file, these would open as templates, execute, and spread the virus. This represents a practical problem for Windows systems where extension-hiding is turned on by default. A second way to identify
8700-815: The same thing as identifiers in the sense of a database key or serial number (although an identifier may well identify its associated data as such a key). With this type of file structure, tools that do not know certain chunk identifiers simply skip those that they do not understand. Depending on the actual meaning of the skipped data, this may or may not be useful ( CSS explicitly defines such behavior). This concept has been used again and again by RIFF (Microsoft-IBM equivalent of IFF), PNG, JPEG storage, DER ( Distinguished Encoding Rules ) encoded streams and files (which were originally described in CCITT X.409:1984 and therefore predate IFF), and Structured Data Exchange Format (SDXF) . Indeed, any data format must somehow identify
8800-883: The significance of its component parts, and embedded boundary-markers are an obvious way to do so: This is another extensible format, that closely resembles a file system ( OLE Documents are actual filesystems), where the file is composed of 'directory entries' that contain the location of the data within the file itself as well as its signatures (and in certain cases its type). Good examples of these types of file structures are disk images , executables , OLE documents TIFF , libraries . Windows NT 24H2 (10.0.26100.2454) (November 21, 2024 ; 2 days ago ( 2024-11-21 ) ) [±] 23H2 (10.0.22635.4515) (November 22, 2024 ; 1 day ago ( 2024-11-22 ) ) [±] 24H2 (10.0.26120.2415) (November 22, 2024 ; 1 day ago ( 2024-11-22 ) ) [±] Windows NT
8900-583: The standard to which they adhere. Many file types, especially plain-text files, are harder to spot by this method. HTML files, for example, might begin with the string <html> (which is not case sensitive), or an appropriate document type definition that starts with <!DOCTYPE html , or, for XHTML , the XML identifier, which begins with <?xml . The files can also begin with HTML comments, random text, or several empty lines, but still be usable HTML. The magic number approach offers better guarantees that
9000-438: The storage of "extended attributes" with files. These comprise an arbitrary set of triplets with a name, a coded type for the value, and a value, where the names are unique and values can be up to 64 KB long. There are standardized meanings for certain types and names (under OS/2 ). One such is that the ".TYPE" extended attribute is used to determine the file type. Its value comprises a list of one or more file types associated with
9100-623: The subsystem from Windows NT kernel dropping Android apk apps compatibility, including Android apps from Amazon App Store . Google announced plans in December 2021 to bring Android games to Windows in 2022. An APK file is a ZIP archive that usually contains the following files and directories: File format Some file formats are designed for very particular types of data: PNG files, for example, store bitmapped images using lossless data compression . Other file formats, however, are designed for storage of several different types of data:
9200-414: The unstructured formats led to the development of other types of file formats that could be easily extended and be backward compatible at the same time. In this kind of file structure, each piece of data is embedded in a container that somehow identifies the data. The container's scope can be identified by start- and end-markers of some kind, by an explicit length field somewhere, or by fixed requirements of
9300-463: The use of this standard awkward in some cases. File format identifiers are another, not widely used way to identify file formats according to their origin and their file category. It was created for the Description Explorer suite of software. It is composed of several digits of the form NNNNNNNNN-XX-YYYYYYY . The first part indicates the organization origin/maintainer (this number represents
9400-423: Was cancelling plans to ship 64-bit Windows for Alpha. Because of this, Alpha versions of Windows NT are 32-bit only. While Windows 2000 only supports Intel IA-32 (32-bit), Windows XP, Server 2003, Server 2008 and Server 2008 R2 each have one edition dedicated to Itanium-based systems. In comparison with Itanium, Microsoft adopted x64 on a greater scale: every version of Windows since Windows XP (which has
9500-455: Was designed as a modified microkernel , as the Windows NT kernel was influenced by the Mach microkernel developed by Richard Rashid at Carnegie Mellon University, but does not meet all of the criteria of a pure microkernel. Both the kernel and the executive are linked together into the single loaded module ntoskrnl.exe ; from outside this module, there is little distinction between the kernel and
9600-514: Was initially developed using non-x86 development systems and then ported to the x86 architecture. This work was initially based on the Intel i860 -based Dazzle system and, later, the MIPS R4000-based Jazz platform. Both systems were designed internally at Microsoft. Windows NT 3.1 was released for Intel x86 PC compatible and PC-98 platforms, and for DEC Alpha and ARC -compliant MIPS platforms. Windows NT 3.51 added support for
9700-419: Was redesigned to match that of the brand-new Windows 95 , moving from the Program Manager to the Windows shell design. NTFS , a journaled, secure file system, is a major feature of NT. Windows NT also allows for other installable file systems; NT can also be installed on FAT file systems, and versions 3.1, 3.5, and 3.51 could be installed HPFS file systems. Windows NT introduced its own driver model,
9800-502: Was released, including the new shell from Windows 95 . Eventually, Microsoft incorporated the Windows NT technology into the Windows product line for personal computing and deprecated the Windows 9x family. Starting with Windows 2000 , "NT" was removed from the product name yet is still in several low-level places in the system — including for a while as part of the product version. Versions of Windows NT are installed using Windows Setup , which, starting with Windows Vista , uses
9900-567: Was then enhanced with the Amiga standard Datatype recognition system. Another method was the FourCC method, originating in OSType on Macintosh, later adapted by Interchange File Format (IFF) and derivatives. A final way of storing the format of a file is to explicitly store information about the format in the file system, rather than within the file itself. This approach keeps the metadata separate from both
10000-443: Was to have a common code base with a custom Hardware Abstraction Layer (HAL) for each platform. However, support for MIPS, Alpha, and PowerPC was later dropped in Windows 2000 . Broad software compatibility was initially achieved with support for several API "personalities", including Windows API , POSIX , and OS/2 APIs – the latter two were phased out starting with Windows XP. Partial MS-DOS and Windows 16-bit compatibility
#554445