MinGW mingw32, is a free and open source software development environment to create Microsoft Windows applications. The development of the MinGW project has slowed down since the creation in 2005–2008 of an alternative project called Mingw-w64. MinGW includes a port of the GNU Compiler Collection, GNU Binutils for Windows, a set of distributable Windows specific header files and static import libraries which enable the use of the Windows API, a Windows native build of the GNU Project's GNU Debugger, miscellaneous utilities. MinGW does not rely on third-party C runtime dynamic-link library files, because the runtime libraries are not distributed using the GNU General Public License, it is not necessary to distribute the source code with the programs produced, unless a GPL library is used elsewhere in the program. MinGW can be run either on the native Microsoft Windows platform, cross-hosted on Linux, or "cross-native" on Cygwin. Although programs produced under MinGW are 32 bits executables, they can be used both in 32 and 64 bits versions of Windows.

MinGW was called mingw32, following the GNU convention whereby Windows is shortened as "W32". The numbers were dropped in order to avoid the implication that it would be limited to producing 32-bit binaries. Colin Peters authored the initial release in 1998, consisting only of a Cygwin port of GCC. Jan-Jaap van der Heijden make. Mumit Khan took over development, adding more Windows-specific features to the package, including the Windows system headers by Anders Norlander. In 2000, the project was moved to SourceForge in order to solicit more assistance from the community and centralize its development. MinGW was selected as Project of the Month at SourceForge for September 2005. In 2007 a fork of the original mingw called mingw-w64 appeared in order to provide support for 64 bits and new APIs, it has since gained widespread use and distribution. In the last quarter of 2013 a new project was started, MSYS2 together with 32-bit and 64-bit MinGW packages; this project was created to keep track with newer advances of the Cygwin project and the fact that the original MSYS was not able to keep up with Cygwin.

MSYS2 is an independent rewrite of MSYS, based on modern Cygwin and MinGW-w64 with the aim of better interoperability with native Windows software. It uses Arch Linux's Pacman as the package manager. In 2018, following a disagreement with SourceForge about the administration of its mailing lists, MinGW migrated to OSDN. Most languages supported by GCC are supported on the MinGW port as well; these include C, C++, Objective-C, Objective-C++, Ada. The GCC runtime libraries are used. MinGW links by default to the Windows OS component library MSVCRT, the C library that Visual C version 6.0 linked to, released in 1998 and therefore does not include support for C99 features, or all of C89. While targeting MSVCRT yields programs that require no additional runtime redistributables to be installed, the lack of support for C99 has caused porting problems where printf-style conversion specifiers are concerned; these issues have been mitigated by the implementation of a C99 compatibility library, but the extensive work required is far from complete and may never be realized.

MinGW-w64 has resolved these issues, provides POSIX compliant printf functionality. Binaries generated with different C++ compilers are in general not link compatible. However, compiled C code is link compatible; the MinGW project maintains and distributes a number of different core components and supplementary packages, including various ports of the GNU toolchain, such as GCC and binutils, translated into equivalent packages. These utilities can be used from the Windows command line or integrated into an IDE. Packages may be installed using the command line via mingw-get. MinGW supports dynamic libraries named according to the <name>.lib and <name>.dll conventions, as well as static libraries following the lib<name>.a naming convention common on Unix and Unix-like systems. In addition, a component of MinGW known as MSYS provides Windows ports of a lightweight Unix-like shell environment including rxvt and a selection of POSIX tools sufficient to enable autoconf scripts to run, but it does not provide a C compiler or a case-sensitive file system.mingwPORTs are user contributed additions to the MinGW software collection.

Rather than providing these "add-ons" as precompiled binary packages, they are supplied in the form of interactive Bourne shell scripts, which guide the end user through the process of automatically downloading and patching original source code building and installing it. Users who wish to build any application from a mingwPORT must first install both MinGW and MSYS; the implementation of Windows system headers and static import libraries are released under a permissive license, while the GNU ports are provided under the GNU General Public License. Binary downloads of both the complete MSYS package and individual MinGW GNU utilities are available from the MinGW site. Although both Cygwin and MinGW can be used to port Unix software to Windows, they have different approaches: Cygwin aims to provide a complete POSIX layer comprising a full implementation of all major Unix system calls and libraries. Compatibility is considered higher priority than performance. On the other hand, MinGW's priorities are performance.

As such, it does not provide certain POSIX APIs


Attached Resource Computer NETwork is a communications protocol for local area networks. ARCNET was the first available networking system for microcomputers, it was applied to embedded systems where certain features of the protocol are useful. ARCNET was developed by principal development engineer John Murphy at Datapoint Corporation in 1976 under Victor Poor, announced in 1977, it was developed to connect groups of their Datapoint 2200 terminals to talk to a shared 8" floppy disk system. It was the first loosely coupled LAN-based clustering solution, making no assumptions about the type of computers that would be connected; this was in contrast to contemporary larger and more expensive computer systems such as DECnet or SNA, where a homogeneous group of similar or proprietary computers were connected as a cluster. The token-passing bus protocol of that I/O device-sharing network was subsequently applied to allowing processing nodes to communicate with each other for file-serving and computing scalability purposes.

An application could be developed in DATABUS, Datapoint's proprietary COBOL-like language and deployed on a single computer with dumb terminals. When the number of users outgrew the capacity of the original computer, additional'compute' resource computers could be attached via ARCNET, running the same applications and accessing the same data. If more storage was needed, additional disk resource computers could be attached; this incremental approach broke new ground and by the end of the 1970s over ten thousand ARCNET LAN installations were in commercial use around the world, Datapoint had become a Fortune 500 company. As microcomputers took over the industry, well-proven and reliable ARCNET was offered as an inexpensive LAN for these machines. ARCNET remained proprietary until the early-to-mid 1980s; this did not cause concern at the time. The move to non-proprietary, open systems began as a response to the dominance of International Business Machines and its Systems Network Architecture. In 1979, the Open Systems Interconnection Reference Model was published.

In 1980, Digital and Xerox published an open standard for Ethernet, soon adopted as the basis of standardization by the IEEE and the ISO. IBM responded by proposing Token ring as an alternative to Ethernet but kept such tight control over standardization that competitors were wary of using it. ARCNET was less expensive than either, more reliable, more flexible, by the late 1980s it had a market share about equal to that of Ethernet. Tandy/Radio Shack offered ARCNET as an application and file sharing medium for their TRS-80 Model II, Model 12, Model 16, Tandy 6000, Tandy 2000, Tandy 1000 and Tandy 1200 computer models. There were hooks in the Model 4P's ROM to boot from an ARCNET network; when Ethernet moved from co-axial cable to twisted pair and an "interconnected stars" cabling topology based on active hubs, it became much more attractive. Easier cabling, combined with the greater raw speed of Ethernet helped to increase Ethernet demand, as more companies entered the market the price of Ethernet started to fall—and ARCNET volumes tapered off.

In response to greater bandwidth needs, the challenge of Ethernet, a new standard called ARCnet Plus was developed by Datapoint, introduced in 1992. ARCnet Plus ran at 20 Mbit/s, was backward compatible with original ARCnet equipment. However, by the time ARCnet Plus products were ready for the market, Ethernet had captured the majority of the network market, there was little incentive for users to move back to ARCnet; as a result few ARCnet Plus products were produced. Those that were built by Datapoint, were expensive, hard to find. ARCNET was standardized as ANSI ARCNET 878.1. It appears this was when the name changed from ARCnet to ARCNET. Other companies entered the market, notably Standard Microsystems who produced systems based on a single VLSI chip developed as custom LSI for Datapoint, but made available by Standard Microsystems to other customers. Datapoint found itself in financial trouble and moved into video conferencing and custom programming in the embedded market. Though ARCNET is now used for new general networks, the diminishing installed base still requires support - and it retains a niche in industrial control.

Original ARCNET used RG-62/U coaxial cable of 93 Ω impedance and either passive or active hubs in a star-wired bus topology. At the time of its greatest popularity, this was a significant advantage of ARCNET over Ethernet. A star-wired bus was much easier to build and expand than the clumsy linear bus Ethernet of the time; the "interconnected stars" cabling topology made it easy to add and remove nodes without taking down the whole network, much easier to diagnose and isolate failures within a complex LAN. Another significant advantage ARCNET had over Ethernet was cable distance. ARCNET coax cable runs could extend 610 m between active hubs or between an active hub and an end node, while the RG-58'thin' Ethernet most used at that time was limited to a maximum run of 185 m from end to end. ARCNET had the disadvantage of requiring either an active or passive hub between nodes if there were more than two nodes in the network, while thin Ethernet allowed nodes to be spaced anywhere along the linear coax cable.

However, ARCNET passive hubs were inexpensive, being composed of a simple