- Microsoft Windows
- Текст для чтения по английскому языку на тему «Операционные системы»
- Surprisingly Software Development on Windows is Awesome Now
- History lesson
- The pain is gone
- Why is it worth using Windows and not Linux or Mac?
- Practice time
- Windows Subsystem for Linux
- The Console
- Docker
- Other Tools
- IDEs and text editors
- UML and other diagrams
- More tools and tricks
- Windows Downsides
- Summary
Microsoft Windows
Our editors will review what you’ve submitted and determine whether to revise the article.
Microsoft Windows, also called Windows and Windows OS, computer operating system (OS) developed by Microsoft Corporation to run personal computers (PCs). Featuring the first graphical user interface (GUI) for IBM-compatible PCs, the Windows OS soon dominated the PC market. Approximately 90 percent of PCs run some version of Windows.
The first version of Windows, released in 1985, was simply a GUI offered as an extension of Microsoft’s existing disk operating system, or MS-DOS. Based in part on licensed concepts that Apple Inc. had used for its Macintosh System Software, Windows for the first time allowed DOS users to visually navigate a virtual desktop, opening graphical “windows” displaying the contents of electronic folders and files with the click of a mouse button, rather than typing commands and directory paths at a text prompt.
Subsequent versions introduced greater functionality, including native Windows File Manager, Program Manager, and Print Manager programs, and a more dynamic interface. Microsoft also developed specialized Windows packages, including the networkable Windows for Workgroups and the high-powered Windows NT, aimed at businesses. The 1995 consumer release Windows 95 fully integrated Windows and DOS and offered built-in Internet support, including the World Wide Web browser Internet Explorer.
With the 2001 release of Windows XP, Microsoft united its various Windows packages under a single banner, offering multiple editions for consumers, businesses, multimedia developers, and others. Windows XP abandoned the long-used Windows 95 kernel (core software code) for a more powerful code base and offered a more practical interface and improved application and memory management. The highly successful XP standard was succeeded in late 2006 by Windows Vista, which experienced a troubled rollout and met with considerable marketplace resistance, quickly acquiring a reputation for being a large, slow, and resource-consuming system. Responding to Vista’s disappointing adoption rate, Microsoft in 2009 released Windows 7, an OS whose interface was similar to that of Vista but was met with enthusiasm for its noticeable speed improvement and its modest system requirements.
Windows 8 in 2012 offered a start screen with applications appearing as tiles on a grid and the ability to synchronize settings so users could log on to another Windows 8 machine and use their preferred settings. In 2015 Microsoft released Windows 10, which came with Cortana, a digital personal assistant like Apple’s Siri, and the Web browser Microsoft Edge, which replaced Internet Explorer. Microsoft also announced that Windows 10 would be the last version of Windows, meaning that users would receive regular updates to the OS but that no more large-scale revisions would be done.
The Editors of Encyclopaedia Britannica This article was most recently revised and updated by Amy Tikkanen, Corrections Manager.
Текст для чтения по английскому языку на тему «Операционные системы»
When computers were first introduced in the 1940’s and 50’s, every program written had to provide instructions that told the computer how to use devices such as the printer, how to store information on a disk, as well as how to perform several other tasks not necessarily related to the program. The additional program instructions for working with hardware devices were very complex, and time-consuming. Programmers soon realized it would be smarter to develop one program that could control the computer’s hardware, which others programs could have used when they needed it. With that, the first operating system was born.
Today, operating systems control and manage the use of hardware devices such as the printer or mouse. They also provide disk management by letting you store information in files. The operating system also lets you run programs such as the basic word processor. Lastly, the operating system provides several of its own commands that help you to use the computer DOS is the most commonly used PC operating system. DOS is an abbreviation for disk operating system. DOS was developed by a company named Microsoft. MS-DOS is an abbreviation for «Microsoft DOS». When IBM first released the IBM PC in 1981, IBM licensed DOS from Microsoft for use on the PC and called it PC-DOS. From the users perspective, PC-DOS and MS-DOS are the same, each providing the same capabilities and commands.
The version of DOS release in 1981 was 1.0. Over the past decade, DOS has undergone several changes. Each time the DOS developers release a new version, they increase the version number.
Windows NT (new technology) is an operating system developed by Microsoft. NT is an enhanced version of the popular Microsoft Windows 3.0, 3.1 programmes. NT requires a 386 processor or greater and 8 Mb of RAM. For the best NT performance, you have to use a 486 processor with about 16 Mb or higher. Unlike the Windows, which runs on top of DOS, Windows NT is an operating system itself. However, NT is DOS compatible. The advantage of using NT over Windows is that NT makes better use of the PC’s memory management capabilities.
OS/2 is a PC operating system created by IBM. Like NT, OS/2 is DOS compatible and provides a graphical user interface that lets you run programs with a click of a mouse. Also like NT, OS/2 performs best when you are using a powerful system. Many IBM-based PCs are shipped with OS/2 preinstalled.
UNIX is a multi-user operating system that allows multiple users to access the system. Traditionally, UNIX was run on a larger mini computers to which users accessed the systems using terminals and not PC’s. UNIX allowed each user to simultaneously run the programs they desired. Unlike NT and OS/2, UNIX is not DOS compatible. Most users would not purchase UNIX for their own use.
Windows 95 & 98 (Windows 2000) are the most popular user-oriented operating systems with a friendly interface and multitasking capabilities. The usage of Windows 95 and its enhanced version Windows 98 is so simple that even little kids learn how to use it very quickly. Windows 95 and 98 are DOS compatible, so all programs written for DOS may work under the new operating system.
Windows 95 requires 486 processor with 16 megabytes of RAM or Pentium 75-90 with 40 megabytes of free hard disk space.
to consume — потреблять
to realize — понять , осознать
smart — умный decade — декада , десятилетие
to enhance — увеличивать , расширять
top — верх , вершина
on top of DOS — « сверху », на основе ДОС
are shipped — поставляются
with a click of a mouse — одним щелчком кнопки мыши
to allow — позволять
multiple users — многочисленные пользователи
to ship — поставлять, доставлять
What problems faced programmers in the 1940’s and 1950’s?
Why were the first programs « complex» and «time-consuming*?
What are the basic functions of operating system?
What does the abbreviation DOS mean?
What company developed the first version of DOS operating system? For what purpose was it done? Was the new operational system successful?
What is the difference between the PC-DOS and MS-DOS
What does the abbreviation NT stand for? Is NT DOS-compatible? What are the basic requirements for NT?
Who is the developer of OS/2?
What makes UNIX so different from the other operational systems?
10) What are the special features of Windows 95, Windows 98, Windows 2000?
Exercise Match the following:
1) Like NT, . is DOS compatible and provides a graphical user interface that lets you run programmes with a click of a mouse.
2). is the most commonly used PC operating system
3). is a multi-user operating system that allows multiple users to access the system
4). is an operating system developed by Microsoft, an enhanced version of the popular Microsoft Windows programs.
5) The usage of. is so simple that even little kids learn how to use it very quickly.
Exercise Which of the listed below statements are true/false. Specify your answer using the text.
When computers were first introduced in 40’s and 50’s programmers had to write programs to instruct CD-ROMs, laser printers and scanners.
The operational system controls and manages the use of the hardware and the memory.
There are no commands available in operating systems, they are only in word processors.
Microsoft developed MS-DOS to compete with IBM’s PC-DOS.
NT requires computers with 486 CPU and 16 M random access memory.
OS/2 is DOS compatible because it was developed by Microsoft.
Traditionally, UNIX was run by many users simultaneously.
Windows 95 and Windows 98 are DOS compatible and have very «friendly» and convenient interface.
Exercise Translate into English:
Современная операционные системы контролируют использование системного оборудования, например, принтера и мыши.
С точки зрения пользователя, операционные системы PC — DOS и MS — DOS идентичны, с равными возможностями и набором системных команд.
OS/2 является DOS -совместимой операционной системой, позволяющей запускать программы при помощи графического интерфейса пользователя.
Дополнительные программы для работы с устройствами системного оборудования были очень сложны и поглощали много времени.
Операционная система также позволяет запускать программы, такие как простейший текстовый редактор.
DOS — наиболее распространенная операционная система для персонального компьютера.
Questions for group discussion:
Why do you think Bill Gates, President of Microsoft Company is one of the richest people on the Earth?
Judging from your experience tell if UNIX is used nowadays? What about OS/2?
Ask the students in your group who have experience working with Windows 95 and Windows 98 about the advantages and disadvantages of these operational systems.
Surprisingly Software Development on Windows is Awesome Now
Have you ever considered Microsoft Windows as a desirable OS for software development? What if I told you recently it became great for developer’s needs?
History lesson
Most software engineers I know either use Mac or Linux. Sure there are some exceptions (especially in fields like game development or with technologies like .NET), but the trend is obvious — most people hate Windows for software development.
And I was exactly like that majority. Back in 2008 I switched from Windows to Linux and later that year switched to Mac without any regret.
Developing server applications (meant to run on Linux in production) was always a pain in the ass on Windows: you lacked powerful Unix console with the same tools you have on a Linux server, you needed to download and set up custom libraries and language runtimes in a manual way instead of using automated reliable tools like ‘ apt-get’, ‘ yum’ or ‘ homebrew’. Using libraries with C-bindings was a nightmare: you were forced to either find compiled DLLs somewhere or build them yourself! There were always workarounds like using cygwin or developing in virtual machines (and later Vagrant), but it was still painful comparing to development on Linux or Mac.
Even from a power user standpoint Windows was quite inferior to Linux and Mac. Probably the biggest downside for me was lack of virtual desktops. It feels so natural to have separate desktops for different contexts, e.g. one with IDE, terminal and probably other development or testing-related tools, separate desktop for instant messengers, etc.
The pain is gone
But now we’re in 2018 and all those issues are not relevant anymore. There are few innovations hapened last couple of years, that made development on Windows enjoyable:
- Release of Windows 10, which is a solid modern OS… and yeah — it supports virtual desktops;
- Windows Subsystem for Linux;
- Raise of containerization technologies, particularly Docker;
If you’re using Docker, development on Windows and Mac feels virtually the same. If not, Windows development experience is closer to Linux now.
Why is it worth using Windows and not Linux or Mac?
If you are completely happy with your Mac/Linux laptop or desktop workstation — good for you, probably you should stop reading this article right now.
Going forward let’s assume you’re less lucky fellow like me, who cannot use Linux (probably you need commercial software that is not availble on Linux or some hardware does not work properly on Linux) or not quite happy with Mac (products are not flexible enough for you as a power user, while the cost is sky-high).
For me the turning point was the release of 2016’s Macbook Pro, that lacks ports and functional keys I need every day, shows mediocre performance, but costs more than ever and isn’t upgradeable.
Nowadays premium laptops are not limited to Macbooks, there are Dell XPS, Asus Zenbook Pro and few others that are more powerful and flexible.
Practice time
Let’s set up basic development environment on Windows, so you’ll get similar experience to what you have in Mac or Linux.
Windows Subsystem for Linux
There was an old Joke: “The only time you are allowed to use Internet Explorer is when you’re downloading Chrome or Firefox”. Ironically, you’ll need Windows PowerShell just to set up Linux Subsystem for Windows and continue with bash, zsh or other unix shell of your choice.
I won’t get into WSL setup details, there is already Windows 10 Installation Guide for that.
Now you have Windows as a GUI and familiar Linux Server(Ubuntu in my case) in console.
The Console
Once you set the WSL, it is already available via “ bash” console, which looks exactly like standard “ cmd.exe” or PowerShell.
Luckily there is a number of more advanced alternatives available: wsltty, hyper, console2, conemu, cmder. Most of them felt either buggy or ugly to me, so I’ve sticked to Cmder, which is a fork of ConEmu with more reasonable default settings. Cmder supports multiple tabs, encodings, transparency and multiple profiles with different start commands.
If you’re using zsh, there is a great small article “Running Windows 10 Ubuntu Bash in Cmder” telling you how to set it in CMDer to work flawlessly. If you’re too lazy, here is the command to launch:
Bash users should use following:
At this point it is already more convenient for development than Mac for me, since apt-get is waaay faster than homebrew and WSL feels virtually the same as normal Linux console.
Feel free to set up your Java/Python/Ruby/PHP/Nodes/whatever development environment in the same way you’ll do it on native Linux. Or just skip this step and proceed with Docker.
Docker
Let’s jump to the next level and set up Docker. Starting from 2017 there is a native Docker for Windows, so setting it up should be easy. Just follow official “Get started with Docker for Windows” guide.
After following the guide you’re getting full-fledged Windows Docker client and server. However there is still a downside: it assumes you’ll work with ‘ docker’ and ‘ docker-compose’ from cmd or power shell (or some Windows GUI of course). You could always open separate power shell tabs in CMDer, but it is not very convenient IMO(for example, you cannot run Unix shell-scripts on top of Docker and need to create PowerShell versions instead).
There is workaround available, allowing you to run native windows docker server and communicate with it from Linux docker client via WSL, so you’ll achieve same user experience as on Mac for example. Just follow “Developing a dockerized web app on Windows Subsystem for Linux (WSL)” article. Setting up Docker to work this way takes just 10 minutes: you’ll just need to install Linux Docker client, change some settings in Windows Docker GUI, make a symlink, add a single line to your bash/zsh/etc configuration file and probably make an adjustment to your ‘ docker-compose.yml’.
Other Tools
What are other tools you need as a software engineer? IDE or specialized text editor with debugging/profiling tools, maybe some database management GUI, architecture diagrams (UML) tool, API testing tools like Postman. Good news is that all of it available on Windows in a great variety.
IDEs and text editors
I prefer Jetbrains IDEs for Go, Python and Ruby and they are available on Windows and could work with remote interpreters/debuggers in Docker or WSL. The same is true for Microsoft Visual Studio Code, which is great fast coding text editor.
UML and other diagrams
From time to time I plan and visualize software architecture using UML diagrams. There are lots of free and commercial tools for it, but nothing beats or stands even close to Sparx Enterprise Architect in my opinion. And EA is Windows-only app. It is so great I’ve always used virtual machine with old Windows XP on my Mac just to run Sparx EA. Luckily I can use it without VM now!
More tools and tricks
There is a common pattern for me on Mac to ‘ cd’ into specific directory via console and later launch Finder or text editor within that directory from console. Luckily same pattern could be used with WSL with no problem, it could run any Windows apps, just don’t forget to add them to PATH and add ‘. exe’ at the end or make a symlink… For example, I run ‘ explorer.exe .’ to run Windows Explorer in current directory or ‘ code .’ to launch Visual Studio Code there.
All the solutions I showed in this article could be summarized as “bringing Linux experience to Windows”. However nothing stops you from using 100% Windows tools for development environment, it is not as terrible as it was 5 or so years ago. For example, there is Chocolatey package manager, that feels more like Mac’s Homebrew and allows you setting up tools like git or nodejs real quick. If you’re into Choco and vanilla Windows development experience, there is a nice article available called “Setup Windows 10 for Modern/Hipster Development”.
Also there is Scoop, which feels like more hassle-free Choco.
Also here are few tricks from Reddit’s “Bash on Ubuntu Windows” community:
- It is convenient to place your git repositories in C:\users \git directory. Just create a symlink from your WSL’s home directory pointing to /mnt/c/users/ /git and you’ll get
/git working the same in local Windows and Linux.
Windows Downsides
I won’t lie to you: development experience on Windows is not flawless. And most of flaws are related to Docker:
- Native Docker for Windows uses Hyper-V virtual machine internally. And when Hyper-V is enabled you cannot use other virtual machines like VirtualBox or VMWare. So if you need both Docker and VirtualBox or VMWare — you should either restart the system after turning on or off the Hyper-V or stick to non-native VirtualBox based version of Docker for Windows. However, you could still user Vagrant with Hyper-V.
- Windows Docker is less stable than Mac version, every week or two it gets broken and I need to reset it to default settings or even reinstall. It wastes about 15–20 minutes and annoys you a lot.
- There are still few useful development tools, that are not available for Windows. For example, latest version of Ruby on Rails doesn’t run on Windows out of the box (the fix is just 1 line of code however). I don’t remember the details, but a year ago there were also couple of nice utilities for Ruby developers, that were available just on Mac.
Summary
I’m not a Microsoft fanboy by any means, but cannot deny they made a huge progress towards making Windows enjoyable operating system for developers. In 2017–2018 Windows became viable alternative for Mac and Linux.
This is the first article in the series. Following articles will be more in-depth, providing detailed instructions and examples on developing Python, Ruby, Go, JavaScript (client and server) and possibly other applications on Windows, using its modern capabilities.