Welcome!

Open Source Cloud Authors: Zakia Bouachraoui, Liz McMillan, Elizabeth White, Pat Romanski, Yeshim Deniz

Related Topics: Open Source Cloud, Linux Containers

Open Source Cloud: Article

The Best of Both Worlds

Debugging Linux/Unix code using Windows XP software development tools

These days the size of almost all the resources available to a programmer (memory volume, CPU speed, etc.) are on the rise except for one: the time required to complete a project, which is shrinking. So it's important to work with tools that are convenient and make you productive. It's also important to keep the cost of software development in check by keeping as much as possible of the investments that were already made.

Windows - and currently XP Home and Professional are the most widespread versions - has a huge number of installed copies that can be measured in the hundreds of millions. Linux, on the other hand, is supported by a dedicated community of developers and often provides high-quality software. At the moment Unix operating systems (like Solaris 9 and 10) are widespread for servers.

That's why questions related to inter-system communication between Windows and Linux/Unix (including but not limited to virtualization) are attracting growing attention from developers and businesses.

A good chunk of software development tools for XP is customizable so you can create a configuration (hot keys, macros, menus, commands, customizable syntax, highlighting, etc.) that suits your specific needs. Many developers invested time in such customization.

Suppose you work for a Windows shop and put a lot of time in customizing such tools and then your shop starts a Linux or Unix project. Well, this article will teach you how to save your investment and apply Windows XP software development tools to debugging Linux or Unix code with the originally developed technology of inter-system communications between Windows and Linux/Unix.

Making Your Own IDE
You're not going to compete with big companies like Microsoft, IBM, or Borland, just make yourself a convenient tool. However, manufacturers will be able to apply the proposed technology to their integrated development environments (IDEs) or other software development tools (say editors with extended syntax checking) as described below. Let's consider how your typical IDE works, generally speaking. The programmer creates/edits code using an IDE editor then complies it using a build-in or external compiler that's called with a menu selection (like, for example, the Build | Build solution) and gets compilation results right in front of his eyes in the IDE. Now, why not to apply the same idea to a mixed Linux or Unix-Windows XP development environment? This article will show you how to do it.

What If the External Compiler Works Under a Different Operating System
In our case the external compiler works under a different operating system. The system for the compiler can be run in the same computer as XP (if virtualization is used) or on a different computer on the other side of the planet. It really doesn't matter as long as you can transfer the code from your favorite XP software development tools to the external compiler that works under Linux/Unix and get back compilation results.

General Description of Proposed Technology
The idea is simple. We'll use the following components that together will compose a technology for transferring code from the XP software development tools to Linux/Unix, run the Linux/Unix compiler and get back the results of the compilation:

  • A browser on the Windows XP side that will be automatically pointed to a Web page described below from the Windows XP software development tool. You will find a description on how to do it.
  • A Web server that runs the different operating system (Linux or Unix). The operating system in question will be referred to as the server operating system. In fact, any operating system that can host the appropriate Web server can be used with the proposed technology. The Web server just has to be able to handle a FILE input type in an HTML form and some kind of server-side software (Perl scripting, PHP, servlets, JSP, etc.) that's capable of performing the operations described below. Most Web servers these days (like Apache and Sun One) easily fit this requirement.
  • A specially designed Web page that will be automatically filled with code from the Windows XP software development tool that will be put in a FILE input type of the appropriate HTML form. This page will be filled out by a special application that is described in the next bullet. It will be deployed on the server operating system, but will be accessible from XP and serve as a "bridge" between the two.
  • An application that is called from the Windows XP software development tool and automatically fills out the appropriate fields on the Web page. The application will use the Web browser of your choice to do that. In the example below the application is written in Visual Basic.NET (in a way that's compatible with VB.Net 2003 and 2005). But, of course, any language that lets you send keys to the browser (consider C#, for example) can be used for the application.
  • Server-side software that gets the code from the Web page, writes it into a file on the server operating system, calls the external compiler in the system, and sends the results of the compilation back to the browser. In this article a Perl script will be used for this purpose as an example but, as mentioned, one can use any number of technologies (servlets, JSP, PHP) to do the same.
Enough theory, let's do something for real.

Putting It All Together: An Example of the Described Technology
Suppose you use Fedora Core 5 running under XP via VMWare Workstation 5 or 5.5 (i.e., virtualization will be used). Please see my LinuxWorld magazine article "Running Fedora Core 5 Under Windows XP - Tips and Tricks" on virtual machine settings and other useful information (http://linux.sys-con.com/read/219966.htm).


More Stories By Anatoly Krivitsky

Anatoly Krivitsky has a PhD in computer science and has more than 24 years of working experience in the IT field. He's the author of 20 published papers and books and five patents. For more information, please visit http://www.myjavaserver.com/~akrivitsky/index.html.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
While the focus and objectives of IoT initiatives are many and diverse, they all share a few common attributes, and one of those is the network. Commonly, that network includes the Internet, over which there isn't any real control for performance and availability. Or is there? The current state of the art for Big Data analytics, as applied to network telemetry, offers new opportunities for improving and assuring operational integrity. In his session at @ThingsExpo, Jim Frey, Vice President of S...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settl...
@CloudEXPO and @ExpoDX, two of the most influential technology events in the world, have hosted hundreds of sponsors and exhibitors since our launch 10 years ago. @CloudEXPO and @ExpoDX New York and Silicon Valley provide a full year of face-to-face marketing opportunities for your company. Each sponsorship and exhibit package comes with pre and post-show marketing programs. By sponsoring and exhibiting in New York and Silicon Valley, you reach a full complement of decision makers and buyers in ...
Two weeks ago (November 3-5), I attended the Cloud Expo Silicon Valley as a speaker, where I presented on the security and privacy due diligence requirements for cloud solutions. Cloud security is a topical issue for every CIO, CISO, and technology buyer. Decision-makers are always looking for insights on how to mitigate the security risks of implementing and using cloud solutions. Based on the presentation topics covered at the conference, as well as the general discussions heard between sessio...
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound e...
The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examin...
Rodrigo Coutinho is part of OutSystems' founders' team and currently the Head of Product Design. He provides a cross-functional role where he supports Product Management in defining the positioning and direction of the Agile Platform, while at the same time promoting model-based development and new techniques to deliver applications in the cloud.
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
LogRocket helps product teams develop better experiences for users by recording videos of user sessions with logs and network data. It identifies UX problems and reveals the root cause of every bug. LogRocket presents impactful errors on a website, and how to reproduce it. With LogRocket, users can replay problems.
Data Theorem is a leading provider of modern application security. Its core mission is to analyze and secure any modern application anytime, anywhere. The Data Theorem Analyzer Engine continuously scans APIs and mobile applications in search of security flaws and data privacy gaps. Data Theorem products help organizations build safer applications that maximize data security and brand protection. The company has detected more than 300 million application eavesdropping incidents and currently secu...