With the migration to commodity Personal Computer hardware, standard commercial "off-the-shelf" operating systems, and programming environments can be used inside of ATMs. Typical platforms previously used in ATM development include RMX or OS/2. A Wincor Nixdorf ATM running Windows 2000. Today the vast majority of ATMs worldwide use a Microsoft Windows OS, primarily Windows XP Professional or Windows XP Embedded.[citation needed] A small number of deployments may still be running older versions of Windows OS such as Windows NT, Windows CE, or Windows 2000. There is a computer industry security view that general public desktop operating systems have greater risks as operating systems for cash dispensing machines than other types of operating systems like (secure) real-time operating systems (RTOS). RISKS Digest has many articles about cash machine operating system vulnerabilities.[34] Linux is also finding some reception in the ATM marketplace. An example of this is Banrisul, the largest bank in the south of Brazil, which has replaced the MS-DOS operating systems in its ATMs with Linux. Banco do Brasil is also migrating ATMs to Linux. Common application layer transaction protocols, such as Diebold 91x (911 or 912) and NCR NDC or NDC+ provide emulation of older generations of hardware on newer platforms with incremental extensions made over time to address new capabilities, although companies like NCR continuously improve these protocols issuing newer versions (e.g. NCR's AANDC v3.x.y, where x.y are subversions). Most major ATM manufacturers provide software packages that implement these protocols. Newer protocols such

as IFX have yet to find wide acceptance by transaction processors.[35] With the move to a more standardised software base, financial institutions have been increasingly interested in the ability to pick and choose the application programs that drive their equipment. WOSA/XFS, now known as CEN XFS (or simply XFS), provides a common API for accessing and manipulating the various devices of an ATM. J/XFS is a Java implementation of the CEN XFS API. While the perceived benefit of XFS is similar to the Java's "Write once, run anywhere" mantra, often different ATM hardware vendors have different interpretations of the XFS standard. The result of these differences in interpretation means that ATM applications typically use a middleware to even out the differences between various platforms. With the onset of Windows operating systems and XFS on ATM's, the software applications have the ability to become more intelligent. This has created a new breed of ATM applications commonly referred to as programmable applications. These types of applications allows for an entirely new host of applications in which the ATM terminal can do more than only communicate with the ATM switch. It is now empowered to connected to other content servers and video banking systems. Notable ATM software that operates on XFS platforms include Triton PRISM, Diebold Agilis EmPower, NCR APTRA Edge, Absolute Systems AbsoluteINTERACT, KAL Kalignite Software Platform, Phoenix Interactive VISTAatm, and Wincor Nixdorf ProTopas. With the move of ATMs to industry-standard computing environments, concern has risen about the integrity of the ATM's software stack.[36]