Win32 Subsystem and Winapi Win32 Is the Main Subsystem in Windowsnt Architecture, Other Subsystems Often Call Win32 Functions

Total Page:16

File Type:pdf, Size:1020Kb

Win32 Subsystem and Winapi Win32 Is the Main Subsystem in Windowsnt Architecture, Other Subsystems Often Call Win32 Functions Operating systems Operating systems Windows PhD Damian Radziewicz Wrocław 2017 Why Windows XP? It’s not about windows manager (graphical user interface) Released by Microsoft in 2001, successor of NT family systems, including Windows 2000; Integrator of ‘home’ (9x) and ‘office’ (NT) lines of Microsoft’s systems; XP is short for „eXPerience” (enhanced user experience) Popularity in August 2012: still popular OS in the world (25%), Win7: 55%, Windows family: almost 85%; Linux: 5.0%, Mac: 8.7% [www.w3schools.com] Extended support for Windows XP would end on April 8, 2014 Base for Windows XP Embedded (ATMs, airport terminals, …) OS popularity (update 2016) [wikipedia.org] OS popularity (update 2016) http://www.techmynd.com/50-plus-blue-screen-of-death-displays-in-public/ NT family: short history Project started in 1988 (NT3.1 1993, NT4.0 1996) Microsoft claimed that NT will be ‘New Technology’ system as opposite to former Windows as well as UNIX systems. ‘Bad guys’ pronounced it ‘Not Today, Not Tomorrow, but Nice Try’ „...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and the Ugly)” (by Matt Welsh) Very complicated driver development for NT thus not so popular as 9x. Inside NT and XP OS Win32 is the main part of the system from the software developer’s point of view; POSIX.1 subsystem is also available (however, today Microsoft offers SFU - Windows Services for UNIX) OS/2 API was intended to be native environment, but finally Win32 won (mainly due to popularity of Windows 3.x). OS/2 was removed in XP. Interix (POSIX support) POSIX: Portable Operating System Interface for Unix – a standard for API, system commands, shell. [$$!] The complete installation of Interix includes (at version 3.5): • Over 350 Unix utilities such as vi, ksh, csh, ls, cat, awk, grep, kill, etc. • A complete set of manual pages for utilities and APIs • GCC 3.3 compiler, includes and libraries • A cc/c89-like wrapper for Microsoft Visual Studio command-line C/C++ compiler • GNU Debugger • X11 client applications and libraries (no X server included though, you can use Xming for example) • Has Unix root capabilities (i.e. setuid files) • Has pthreads, shared libraries, DSOs, job control, signals, sockets, shared memory http://en.wikipedia.org/wiki/Interix XP OS sub-layers Subsystems (i.e. POSIX, Win32) exist over kernel mode as user-mode subsystems extensibility (but XP natively supports Win32 only) Processor (hardware) dependent code placed in HAL DLL (hardware abstraction layer) – potentially easier to port OS to different architectures, lower risk for bugs during porting. XP: some features International support With NLS API (national language support) it is very easy to use different languages even within the same system and to develop applications with multi-language support UNICODE natively supported Multiprocessing The XP was designed especially for SMP (symmetrical multiprocessing). In fact, GUI responsiveness is acceptable only when at least HT technology is used… Single-core hardware is not ‘responsive’ with Windows XP! XP: features (2) Compatibility Win32 subsystem provides backward compatibility with Win9x systems in most cases with respect to processes protection Reliability Comparing to win9x, better protection both on hardware and software resources. XP kernel (microkernel) Kernel ::= Executive (kernel-mode) + subsystems (user-mode) Object-oriented: each object (event, mutex, semaphore, thread, timer, interrupt, process, profile) has its own privileges Microkernel is never preempted nor impacted by the paging (swapping) XP processes: virtual memory Each process has its own virtual address space Example: compile and run at least two instances of this code. Both instances share the same code In both cases address of ‘variable’ is the same The value of ‘variable’ in both processes is different, the variable is physically stored in different places. However, virtual address (acquired with & operator) is the same in both cases. NTFS file system Supersedes FAT and HPFS (used in OS/2) ACL (Access List Control) based security Journal of disk operations Files represented by metadata rather than raw stream of bytes Links and mounts supported Volume: similar to logical disk, but can also span across multiple devices, RAIDs, … NTFS and ACLs Each file or directory can inherit security attributes from parent, or can have its own attributes. Note: this feature is not available in Home Edition. NTFS: additional security Files and directories in NTFS can be compressed and AES encrypted (note: this feature is not available in Home Edition). EFS (Encrypting File System) is transparent to the user. The symmetric cryptography is used for securing the data, public-key cryptography is used to It is very difficult (nearly impossible) manage symmetric key. to decrypt the data without valid user key, so users must be very careful turning-on this feature! It is highly recommended to use SmartCard (Vista or 7 is required) to store backup certificates for EFS. NTFS vs. FAT FAT is very simple, and thus popular (cameras, memory cards, …). It is compatible with most OSes. FAT requires very low resources (CPU, RAM). NTFS supports large files (>2/4 GiB), encryption, dynamic volumes, hard- and soft links and user rights (ACLs). NTFS has journal and is resistant to power-fails. NTFS has built-in mechanism against fragmentation Win32 subsystem and WinAPI Win32 is the main subsystem in WindowsNT architecture, other subsystems often call Win32 functions Win32 API is backward compatible with older version of Windows (in most cases) WinAPI is also supported in mobile / embedded environments System objects are available as handles Huge MSDN resources: API documentation, examples, … Hundreds of functions and special data structures (baggage of backward compatibility) Almost everything is possible with API functions… if you have enough time WinAPI can be attractive for RDP applications development and for thin-clients. It does not require .NET frameworks nor even C/C++ libraries. Application can be executed on fresh copy of Windows. Windows programming in C (1) Application can create as many windows as it needs User can register its own window classes Message-driven communication between OS and window this idea can be adopted to embedded OS or OS-like code for small devices One callback function for processing of window messages Most of API function prototypes placed in windows.h header file Windows application structure Typical window application consists of class registration, window creation, message loop and message processing function. Code execution starts from WinMain() function rather than standard main(). Instance handle (HINSTANCE type) represents running process in the system, single EXE file can be executed many times creating multiple running processes in memory. Class registration in WinAPI Each class is represented by string identifier (i.e. "MyClass") Many classes already registered, including "BUTTON", "EDIT", … Window-class is a receipt for easy creation of similar (same class) windows in the future. However, typically application creates exactly one main window. Message processing Message is an unique integer number with 2 optional parameters; Hundreds of messages are already predefined, user can define own messages, too; Messages are processed in user-defined callback function; Minimum code for message processing includes calling PostQuitMessage() on WM_DESTROY and DefWindowProc() on the rest of messages. Message loop Message-is a placeholder for message translators and accelerators (key combinations which can help user navigate through application not only with mouse and menu system, but also with keyboard). This loop finishes once PostQuitMessage() is executed. PeekMessage() can be used to determine if a message is waiting in message queue or not, rather than waiting for it with GetMessage(). See many examples of OpenGL applications. Window creation Every window in ‘Windows’ is represented by the handle (HWND); Every Window belongs to specified class, has initial set of attributes and screen position; Specify WS_VISIBLE (or call ShowWindow() later) to make the window visible; Almost every control in Windows (including buttons, menus, desktop) is a… window. If a window belongs to other window, it is child window (WS_CHILD) Working example Message-driven application Easy-to-handle external events; No polling mechanism no wasting CPU cycles; Important assumption: message handler spends only short time in message processing, then returns control to the system; Exactly one message can be processed at a time – no ‘multitasking related horrors’ (by default, an application is single-threaded); Difficult to execute time-consuming background tasks within a typical window application; Almost impossible to call blocking (i.e. I/O) functions inside event handler. case WM_CREATE: for(;;); break; 'Houston, we have a problem' How to call blocking function within message handler? Try to use non-blocking version of function if possible If you really need to call this piece of code: for(;;); consider using threads. Thread is very similar to process, but instead of being executed in its own, separate data memory area, it shares the same memory with the main process. In C, thread is a function which is being executed independly on other functions (and possibly exactly at the same time). This function can access program’s memory, for example global variables. Remember of volatile modifier in this case! Do we need threads? Most of applications don’t need multiple threads; Using of threads complicates code (hard or impossible to guess execution order); Reentrant functions, critical sections, code synchronization is neededmuch more difficult application development; Single-threaded process can use only one CPU core, while well designed, multi-threaded process can take advantage of using all cores/CPUs at the same time. Native WinAPI thread functions can be used, but better use pthreads (POSIX threads) library, available for both Windows and Linux for better code portability between platforms. Using Win32 threads With 4-core CPU, our process can use at most 25% of CPU resources: It doesn’t mean the system always allocates the same core to the thread.
Recommended publications
  • Exceed® 2006
    Transforming Information into Intelligence™ > Data Sheet Exceed® 2006 Exceed is the most secure and popular PC X server in the market. It allows users to cost-effectively connect powerful Microsoft® Windows® desktops to a wide variety of X Window enabled servers, and access high-end X applications. Exceed is renowned for its performance, stability and user-friendliness. Integrated with a powerful terminal emulation package — HostExplorer,® and the optional security suite — Connectivity Secure Shell,™ Exceed is the most versatile Enterprise Connectivity software available. X Server User Exceed Exceed User > Support for X11R6.8 > Publishes X applications using Xweb Wizard > True Color Desktop sharing feature > Interactive support for password aging events Microsoft Windows Platform, Microsoft Windows Platform, Windows Server 2003/2003 x64 Windows Server 2003/2003 x64 > Local X support — X clients, Window Management, Edition, XP/2000/XP Prof x64 Edition, Edition, XP/2000/XP Prof x64 Edition, Font RGB, XRDB, Xtrace Microsoft Terminal Server Edition, Microsoft Terminal Server Edition, Citrix Presentaion Server for Windows Citrix Presentaion Server for Windows > Extensive Server Visual and multiple color depths Support > Support advanced input devices including SpaceBall 5000 > Support for local and remote Window Managers X connections over X connections over TCP/IP TCP/IP > Double Byte Character Set Support > Multiple monitors and screens support — Up to 8 screens > Remember session information for speedy restart Dial-up (LBX) LAN WAN Secure
    [Show full text]
  • Unit 10: Interoperability
    Unit 10: Interoperability 10.2. Windows 2000 in an UNIX Environment AP 9/01 Windows 2000 in an UNIX Environment • Windows/UNIX Interoperability Strategy • Services For UNIX 2.0 • SFU Future Planning • Microsoft Interix 2.2 AP 9/01 Windows/UNIX Interoperability Microsoft Interoperability Framework • Leverage Existing Network Resources • Simplify Account Management • Leverage Existing UNIX Expertise • Simplify Network Administration AP 9/01 Microsoft Windows Services for UNIX 2.0 (SFU) • Leverage Existing Network Resources – NFS Client, Server, Gateway, PCNFS Server • Simplify Account Management – NIS Migration Wizard, Server, Password Synch, User Name Mapping • Leverage Existing UNIX Knowledge – Core set of utilities based on UNIX • Simplify Network Administration – Telnet Client/Server, ActiveState Win32 PERL, Windows Technology AP 9/01 NFS Support (Leverage Existing Network Resources) UNIX NFS Servers SFU NFS Servers SFU NFS SFU NFS Clients Gateway UNIX NFS Clients AP 9/01 Client for NFS • Seamless access to NFS servers – Access NFS servers using Windows credentials – Maps Windows name to UNIX UID • Integration of NFS with Windows UI – Browsing NFS network, servers and shares • Windows semantics – case sensitivity, 8.3 naming, share locks, access to NFS via DFS, UNC naming, ‘net’ commands AP 9/01 Server for NFS • Allow UNIX clients to access files on Windows servers • File access using UNIX UID/GID – Map UID to a domain users – File access privileges according to mapped user • NFS access with just UNIX sign-on • NFS semantics – Support
    [Show full text]
  • INTERIX: UNIX Application Portability to Windows NT Via an Alternative Environment Subsystem
    INTERIX: UNIX Application Portability to Windows NT via an Alternative Environment Subsystem Stephen R. Walli Softway Systems, Inc. 185 Berry Street, Suite 5514, San Francisco, CA 94107 [email protected] 0. Introduction today. It does this in a price competitive manner with respect to the hardware platforms on which This paper was originally written for and it runs. The problem becomes protecting the presented at the USENIX Windows NT huge investment in applications development over Workshop, Seattle, Washington, August 1997. the past decade or more in UNIX applications. The original paper was presented under the How does one leverage and protect the existing OPENNT name. It has been updated to reflect application base while moving to Windows NT? the current architecture and experience with INTERIX. 2. Alternatives 1. The Problem There are several ways to move existing applications to Windows NT. These range from Walli’s First Law of Applications Portability: the expense of a complete re-write of the Every useful application outlives the platform on application to some form of application port. We which it was developed and deployed. will briefly look at the pros and cons of the following: Application source code portability is one of the • cornerstones of most open systems definitions. a complete re-write of the application to the The intention is that if an application is written to Win32 environment subsystem • a particular model of source-code portability, it the UNIX emulation library approach to can port relatively easily to any platform that porting the application supports the portability model. This model is • the common library strategy for porting often based on source code portability standards applications such as the ISO/IEEE family of POSIX • the Microsoft POSIX subsystem standards [1,2] and ISO/ANSI C[3], and • the INTERIX subsystem specifications that include these standards such as the Open Group's Single UNIX Specification[4].
    [Show full text]
  • Symantec Data Loss Prevention Installation Guide for Windows
    Symantec Data Loss Prevention Installation Guide for Windows Version 15.7 Last updated: September 15, 2021 Symantec Data Loss Prevention Installation Guide for Windows Table of Contents About this guide...................................................................................................................................7 About updates to the Symantec Data Loss Prevention Installation Guide for Windows......................................... 7 Planning the installation..................................................................................................................... 8 About installation tiers.................................................................................................................................................... 8 About single sign-on....................................................................................................................................................... 8 About hosted Network Prevent deployments............................................................................................................... 9 About Symantec Data Loss Prevention system requirements................................................................................... 9 Symantec Data Loss Prevention required items........................................................................................................10 Standard ASCII characters required for all installation parameters.........................................................................10 Performing a three-tier
    [Show full text]
  • Windows Tool Reference
    AppendixChapter A1 Windows Tool Reference Windows Management Tools This appendix lists sets of Windows management, maintenance, configuration, and monitor- ing tools that you may not be familiar with. Some are not automatically installed by Windows Setup but instead are hidden away in obscure folders on your Windows Setup DVD or CD- ROM. Others must be downloaded or purchased from Microsoft. They can be a great help in using, updating, and managing Windows. We’ll discuss the following tool kits: ■ Standard Tools—Our pick of handy programs installed by Windows Setup that we think are unappreciated and not well-enough known. ■ Support Tools—A set of useful command-line and GUI programs that can be installed from your Windows Setup DVD or CD-ROM. ■ Value-Added Tools—Several more sets of utilities hidden away on the Windows Setup CD-ROM. ■ Windows Ultimate Extras and PowerToys for XP—Accessories that can be downloaded for free from microsoft.com. The PowerToys include TweakUI, a program that lets you make adjustments to more Windows settings than you knew existed. ■ Resource Kits—A set of books published by Microsoft for some versions of Windows that includes a CD-ROM containing hundreds of utility programs. What you may not have known is that in some cases you can download the Resource Kit program toolkits with- out purchasing the books. ■ Subsystem for UNIX-Based Applications (SUA)—A package of network services and command-line tools that provide a nearly complete UNIX environment. It can be installed only on Windows Vista Ultimate and Enterprise, and Windows Server 2003.
    [Show full text]
  • Windows Kernel Internals Overview
    Windows Kernel Internals Overview David B. Probert, Ph.D. Windows Kernel Development Microsoft Corporation © Microsoft Corporation 1 Contributors Neill Clift Landy Wang Adrian Marinescu David Solomon Nar Ganapathy Ben Leis Jake Oshins Brian Andrew Andrew Ritz Jason Zions Jonathan Schwartz Gerardo Bermudez Mark Lucovsky Dragos Sambotin Samer Arafeh Arun Kishan Dan Lovinger Adrian Oney © Microsoft Corporation 2 Windows History • Team formed in November 1988 • Less than 20 people • Build from the ground up – Advanced Operating System – Designed for desktops and servers – Secure, scalable SMP design – All new code • Rigorous discipline – developers wrote very detailed design docs, reviewed/discussed each others docs and wrote unit tests © Microsoft Corporation 3 Goals of the NT System • Reliability – Nothing should be able to crash the OS. Anything that crashes the OS is a bug and we won’t ship until it is fixed • Security – Built into the design from day one • Portability – Support more than one processor, avoid assembler, abstract HW dependencies. • Extensibility – Ability to extend the OS over time • Compatibility – Apps must run • Performance – All of the above are more important than raw speed! © Microsoft Corporation 4 Windows Server 2003 Architecture System Processes Applications Environment Service Services Subsystems Controller Alerter Interix WinLogon RPC User Session Application User Event Manager Win32 Mode Logger Subsystem DLLs System NTDLL.DLL Threads Kernel Executive API Mode I/O Manager PnP/Power Processes Virtual Cache Security
    [Show full text]
  • Systemy Operacyjne
    SystemSystem operacyjnyoperacyjny WindowsWindows XPXP • Perspektywa historyczna • Podstawy projektu • Elementy systemu Jądro Egzekutor • Podsystemy środowiskowe • System plików • Interfejs programowy Wiesław Płaczek Systemy Operacyjne: Wykład 13 1 PerspektywaPerspektywa historycznahistoryczna • Sierpień 1981: firma Microsoft wypuściła system operacyjny DOS 1.0 (4000 linii kodu asemblera, 8 KB pamięci) dla pierwszego komputera osobistego (PC) IBM, z mikroprocesorem Intel 8086. • Przez kolejne lata DOS, pomimo pojawiania się kolejnych, ulepszonych wersji, pozostawał w tyle za rozwojem technologicznym sprzętu; np. kolejne procesory Intela: 80286, 80386, 80486, pomimo wielu istotnych jakościowo zmian, były traktowane przez DOS jedynie jako „szybki 8086”. •We wczesnych latach 1980-tych Microsoft rozpoczął prace na graficznym interfejsem użytkownika (graphical user interface – GUI) dla systemu DOS, który mógłby rywalizować z systemem Macintosh – rezultatem tego był GUI o nazwie Windows 3.0 (przed 1990), dalsze wcielenia to Windows 95/98/Me. •W połowie lat 1980-tych Microsoft i IBM rozpoczęły pracę nad wielozadaniowym systemem nowej generacji, o nazwie OS/2, który mógłby w pełni wykorzystać możliwości oferowane przez procesor Intel 80286. • W roku 1988 Microsoft wycofał się z projektu OS/2 i rozpoczął pracę nad własnym systemem, wynajmując do tego Dave’a Cutlera, konstruktora systemu operacyjnego VMS dla komputerów VAX firmy DEC. • Pierwsza wersja nowego systemu o nazwie Windows NT („new technology”) z numerem 3.1 została wypuszczona w roku 1993 (używała GUI Windows 3.1). • Dalszym rozwinięciem systemu Windows NT był Windows 2000 (rok 2000). • Windows XP jest uaktualnieniem Windows 2000 oraz zastępuje Windows 95/98. Wiesław Płaczek Systemy Operacyjne: Wykład 13 2 PodstawyPodstawy projektuprojektu • Windows XP jest wielozadaniowym systemem operacyjnym z wywłaszczaniem, ma organizację 32- lub 64-bitową i jest przeznaczony dla procesorów Intel IA32/IA64, AMD K6/K7 i późniejszych.
    [Show full text]
  • 7600021981Pricing Sept2010 Pricing
    FF0000State and Local Select 01+000 FF0000Agreement 01S62995 FF0000September 2010 Pricelist 01+000 Microsoft Complete Product Description ERP Dealer Cost Cost (+) Plus or Net (NYS) SLG Cost (+) Model/Part Cost (-) Minus % Select Price Plus or Number Cost (-) Minus % 077-06158 Access 2010 Sngl MVL $ 148.00 $ 121.32 -3.07% $ 117.60 077-02521 Access SNGL LicSAPk MVL $ 234.00 $ 191.64 -3.07% $ 185.76 077-02567 Access Sngl SA MVL $ 86.00 $ 70.32 -3.07% $ 68.16 689-01091 AutoRouteEuro 2010 SNGL MVL $ 25.00 $ 19.92 -3.07% $ 19.31 689-00491 AutoRouteEuro Win32 SNGL LicSAPk MVL $ 40.00 $ 31.44 -3.07% $ 30.47 689-00497 AutoRouteEuro Win32 SNGL SA MVL $ 14.00 $ 11.52 -3.07% $ 11.17 LQD-00017 BingMapsDsktpwECP SNGL SubsVL MVL $ 344.00 $ 282.62 -3.07% $ 273.94 Q56-00348 Entourage 2008 SNGL MVL $ 54.00 $ 43.92 -3.07% $ 42.57 Q56-00342 Entourage SNGL LicSAPk MVL $ 86.00 $ 69.36 -3.07% $ 67.23 Q56-00339 Entourage SNGL SA MVL $ 31.00 $ 25.44 -3.07% $ 24.66 065-07338 Excel 2010 Sngl MVL $ 144.00 $ 118.44 -3.07% $ 114.80 065-03452 Excel SNGL LicSAPk MVL $ 228.00 $ 187.08 -3.07% $ 181.34 065-03516 Excel Sngl SA MVL $ 84.00 $ 68.64 -3.07% $ 66.53 D46-00735 ExcelMac 2008 SNGL MVL $ 167.00 $ 136.80 -3.07% $ 132.60 D46-00225 ExcelMac SNGL LicSAPk MVL $ 264.00 $ 216.24 -3.07% $ 209.60 D46-00255 ExcelMac SNGL SA MVL $ 97.00 $ 79.44 -3.07% $ 77.00 47F-00234 ExprssnEncdrPro 4.0 SNGL MVL $ 38.00 $ 30.60 -3.07% $ 29.66 47F-00232 ExprssnEncdrPro SNGL LicSAPk MVL $ 60.00 $ 48.36 -3.07% $ 46.88 47F-00233 ExprssnEncdrPro SNGL SA MVL $ 22.00 $ 17.76 -3.07% $ 17.21 NKF-00333
    [Show full text]
  • A Records, 244–245, 279 -A Switch in Nbtstat, 190 in Netstat, 186 AAS Deployment Package, 710 .Aas Extension, 712 Abstract
    22_InsideWin_Index 13/3/03 9:50 AM Page 1269 Index A A records, 244–245, 279 ACEs (Access Control Entries) -a switch access masks in, 568–570 in Nbtstat, 190 command-line tools for, 572–576 in Netstat, 186 for cumulative permissions, 577 AAS deployment package, 710 for deny permissions, 578 .aas extension, 712 inheritance in, 579–580, 725–728 Abstract classes, 299–300 object ownership in, 572 Accelerated Graphics Port (AGP) adapters, 164 viewing and modifying, 570–571 Access Control Entries. See ACEs (Access ACKs in DHCP, 101–102 Control Entries) ACL Editor, 570, 723 Access control lists (ACLs) Advanced view in Active Directory security, 732–734 for inheritance, 578, 581 objects in, 339 for ownership, 572 in security descriptors, 559 for special permissions, 723–724 Access Control Settings window, 728 Edit view, 725–726 Access masks for permissions inheritance, 578 in ACEs, 568–570 blocking, 579 in DSOs, 733 settings for, 581 Access requests in Kerberos, 621 viewings, 582 Access rights. See also Permissions ACLs (access control lists) in Active Directory security in Active Directory security, 732–734 delegation, 729–732 objects in, 339 types of, 724–725 in security descriptors, 559 for group policies, 682 ACPI (Advanced Configuration and Power Access tokens Interface) contents of, 560–561 compatibility of, 23–28, 148–149 local, 559 kernel version for, 135 SIDs in, 559, 561, 581 for PnP,17, 147–149 ACCM (Asynchronous-Control- ACPIEnable option, 149 Character-Map), 1124 Activation Account domain upgrades, 496–498 in IA64, 130 BDC, 494–496 in installation, 49–50 PDC, 490–493 unattended setup scripts for, 95 Account lockout policies Active Directory, 238 in domain design, 429 bulk imports and exports in, 353–356 in password security, 593–594 DNS deployment in, 242–243 Account logons, auditing, 647 DNS integration in, 238–239 Account management, auditing, 511, 648 dynamic updates, 244–245 Accounts in domain migration.
    [Show full text]
  • Open Source at Microsoft
    Open Source at Microsoft Subsystem for UNIX-Based Applications: Providing More Choices or decades, large companies have faced the Microsoft integrates Interix, develops SUA F complexities of working in mixed IT environments. The costs, time, and headaches In 1999, Microsoft acquired the Interix associated with porting applications from one technology from Softway Systems. Instead of operating system to another cannot be shelving the technology, as some Interix users overstated. And as legacy systems age, these feared, Microsoft put it to use. They began challenges show no sign of abating. offering Microsoft Interix 2.2 and later incorporated Interix into in version 3.0 and 3.5 To address the specific problems of porting of Microsoft Windows Services for UNIX, a UNIX-based applications to the Windows® software package that provides parts of the operating system, a company called Softway UNIX environment on Microsoft Windows NT. Systems developed Interix in the early 1990s. Interix, a subsystem for UNIX that runs atop the In 2005, in an effort to advance the Interix Win32 kernel, provided POSIX-compliant APIs technology, a team at Microsoft created a re- that enabled applications built on UNIX architected POSIX-compliant subsystem called platforms to be recompiled on Windows. Subsystem for UNIX-based Applications (SUA). While the core technology is similar to Interix, Solving the problem of rewriting applications SUA provides better operating system integration. It supports mixed-mode and 64-bit Before Interix was developed, a company compatibility, and it enables UNIX-based wanting to run a UNIX-based application on applications to be linked with Windows Windows would have to rewrite the program libraries.
    [Show full text]
  • Windows Subsystem for Linux
    Windows Subsystem for Linux by Aaron Grothe OLUG - September 2016 What is Windows Subsystem for Linux? Simply put WSL lets you run certain Ubuntu Linux programs on Windows 10 How to Install WSL 1. Install Windows 10 Anniversary Edition - Windows 10 Upgrade Advisor 2. Set to Developer Mode 3. Turn on Windows Subsystem for Linux (beta) in the add features sections 4. (Optional) install Cygwin X11 or Xming How to run apps on a different O/S Five Major Approaches 1. Virtual Machine - KVM / Xen / VirtualBox / Vmware, etc 2. Recompile applications for host O/S - Cygwin, UWin 3. Dynamic recompliation of program for different platform 4. Application layer - Interix, WSL, Wine 5. Run the kernel/os alongside the other - colinux, interex History of WSL (assumed) Years ago there was a product called Lxrun by SCO Lxrun included a bunch of Linux source code and was able to run some Linux programs on Sco Unix Sun also released a version of Lxrun There were other systems like HP’s libhplx This has been updated / enhanced by Microsoft and appears to form the basis of WSL There was also a project (linux-abi) to run SCO Unix programs on Linux History of WSL (assumed, cont’d) Micorosft had a project named Astoria. The goal of this project was to run Android apps on Windows Phone O/S Needless to say they decided they really didn’t need this. See OS/2 3.0 a better Windows than Windows How does it work? (assumed) Windows NT had a Posix subsystem, also an OS/2 subsystem as well This continues on to its derivatives (XP, Vista, 7, 8, 10) WSL takes the Lxrun program
    [Show full text]
  • Systemverwaltung Sommersemester 2007
    Systemverwaltung Sommersemester 2008 am Fachbereich Mathematik und Informatik Automatisierung unter Windows Daniel Bößwetter [email protected] August 2008 Automatisierung unter Windows Inhalt Windows Historie (kurz) Windows-Automatisierung mit Unix-Tools -Cygwin -Interix Services for Unix -Perl, Python ... Windows-Automatisierung mit Windows-Tools -Batch-Files -Windows-Scripting (VBS, JS) – nur kurz und knapp -Powershell Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung 2 Windows Historie -16bit Windows: Automatisierung durch Batch-Dateien -Ab Windows 2000: Automatisierung durch Windows Scripting Host (WSH) -Ab Windows Vista: Automasitierung durch Monad/Powershell -(die jeweils älteren Mechanismen leben natürlich weiter!) -(Exkurs: Was bedeutet eigentlich 32bit?) (Bildquelle: Wikipedia) Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung 3 Windows-Automatisierung mit Unix-Tools Cygwin, Interix, Perl/Python ... Cygwin -„Cygwin is a Linux-like environment for Windows.“ (cygwin.com) -Ursprünglich „Minumum GNU for Windows“ (MinGW) entwickelt, um GCC unter Windows nutzen zu können. - Ehem. Cygnus, heute Redhat -Unix-API wird als Bibliothek (DLL) implementiert. -(Fast) alles, was unter Linux läuft, kann durch Re-Kompilieren unter Cygwin ausgeführt werden. -Viele Programmme verfügbar - Shells - Dateisystem-Tools - X11 - Compiler und Scriptsprachen -Frei verfügbar unter www.cygwin.com Fachbereich Mathematik und Informatik, Blockkurs Systemverwaltung 5 Interix Services for Unix (SFU 3.5) -Ähnlich wie Cygwin,
    [Show full text]