Posted by
ryuzaki0
on from the only-a-matter-of-time dept.
fremen writes "Spencer F. Katt has a few lines in his weekly column about Microsoft vs. Linux, including a comment about Microsoft forming a team to write a version of Internet Explorer for Linux. He indicates that Redmond is afraid, very afraid. "
Re:IE for Linux would be welcome...
by
Jerf
·
· Score: 5
Silly to think that someone could gain influence over the Internet by implementing special HTML tags?
Head over to the Web Standards project, and note the troubles special HTML tags are even now causing.
Ponder how many browsers are available for the general public. And why aren't they around? Because they can't handle the "real web", which is populated with lots of special tags? (recall that many of the "special" tags have been standardized after the fact, like CENTER)
Consider whether the browser wars were NOT overhyped, but are, in fact, mostly over now. And Microsoft and Netscape both have tremendous influence on the Internet, with, say, Mosiac nothing but a faint memory.
It's not silly to think that... it's just that it already happened, and you no longer notice, because it's in the background.
News?
by
Anonymous Coward
·
· Score: 4
Does anyone actually _believe_ these announcements anymore? How many times have you heard "Microsoft is going to port product [x] to platform [y]." ? Now think about how many times it's actually happened.
Yawn. I suppose we need to keep an eye on Redmond. But --dang!-- those vaporware announcements are getting boring.
Reading a few of the other comments in this thread I just had a thought. Don't MS use IE as their active Desktop, and several people have suggested that IE would require a port of the Win32 interface.
Well could a Linux version of IE be a MS built window manager?
It is afterall the desktop users that MS is really concerned about... suppose you didn't need that/nasty/ X-Server/window manager combination but instead you could run a linux OS with IE5 sat directly on top (using something like an SVGA library) giving you your desktop.
For people who understand X its wonderful and versatile as hell... but its also very complex and has plenty of security issues associated with it. Is that really what a simple end user wants?
Just imagine for a moment a box which ran the Linux kernal and a most of a normal distro and thus was remote adminable - but provided an end user with a windows interface and the same apps as they currently use.
I'd guess that each user would require their own registry or something - nasty as this might sound to some I can see the appeal.
The end user gets a familure box and doesn't need to learn anything new and the admins get remote access and proper file permissions.
The above, my fellow Slashdotters, is a troll. Please take a few minutes to study the warning signs of a troll, to see the dangers of trolls, and to learn the proper way of dealing with a troll.
I am not the most expert of trollologists; I am sure that Slashdot has much better trollologists. I just got here first. Feel free to reply to this to add points I missed, or argue points you think I am wrong about.
How to Recognize a Troll
A troll is a form of luser that makes incindiary remarks in order to get others to lose their cool, thus making worse incindiary remarks and making complete fools out of themselves.
Many trolls are made by anonymous cowards; people who do not want to be recognized. But not every AC is a troll, and not every troller is an AC. Some will troll from their named accounts; those are the brave trolls. What we have here is a specimin of the more cowardly troll.
But more important than the username is the post. The "best" kind of troll post will make a remark specifically engineered to push the hot buttons of the group being trolled (here, Slashdot itself). Additionally, the perfect troll fails to give any useful or arguable information.
Two perfect trolling sentences here are, "The current Linux file system sucks" and "With MS beginning to support the Linux community, Linux will be an improved product.". both hit hit a Slashdot hot button (there is a lot of "Microsoft-is-evil/Linux-is-good" running around here). Both are too vague to provide any useful information.
The Dangers of a Troll
The danger here is that, without any real information to argue, the tendency is to degenerate into a flame war. "The current Linux file system sucks" is not even an arguable fact; it is a broadbased opinion, posted to a group of people who believe the opposite.
A properly placed troll can tempt otherwise rational people into portraying themselves as complete idiots. Especially with Microsoft, this is exceedingly dangerous.
Microsoft would love to portray the Linux community (including Slashdot) as knee-jerk jack-booted weirdo geeks. They want to show us as untrustworthy people who can fly off the handle. This is where Astroturfing comes in.
Microsoft performs "Astroturfing". This means starting up fake grassroots movements. They tried to do this to forestall the DOJ trial, and were exposed. I do not believe that they are above hiring people to troll Slashdot and similar things, in order to show us making complete fools out of ourselves.
How to respond to Trolls
The first thing is how not to respond to a troll. Don't let them sucker you in. Think before you post, and do not post a flaming ball of hatred. This will do you, and Slashdot as a whole, harm. That's why flames get moderated down. But they're still on the record, so you and we still get to look like idiots.
Often, the best way to respond to a troll is to ignore it. This pisses a troll off worse than anything. Some trolls will respond by trolling more. At this point, you get to watch them making complete fools out of themselves. Remember: it is better to be silent and thought a fool, then to speak up and remove all doubt.
The other thing one can do is to note the troll as such. Newbie users won't recognize trolls as well as old farts, so this helps keep the newbies from flaming the trolls. Here, moderation does this. The troll above was moderated up; I disagree with that, so I'm writing this to mark the troll as such.
Again, please feel free to add to this or correct me. Just Say No To Trolls.
Whatever you do, dont install it... I installed IE for solaris once, and it completely hosed my Netscape installation... And anyone who does any UNIX programming knows that you have to purposely tell a program to write to disk and things dont happen by "accident" like it does with IE and netscape... I for one, will never install it on my computer if they do make it for linux.
Same as vs. Netscape or different?
by
Paradox+!-)
·
· Score: 5
So is this the same as MS vs. Netscape or different? 1. MS was afraid of Netscape 2. MS writes Navigator clone, then 'embraces and extends' it, bundling it into the Windows OS, giving it away for free 3. Navigator market share crumbles 4. Netscape loses momentum and edge, stock decreases (perhaps causing some Netscape coders to rethink their options...literally?) 5. IE 5.0 debuts to rave pundit reviews, Netscape is broken up and sold in pieces to two lesser industry evils...
1. MS is afraid of Linux 2. MS is NOW writing a Lunix clone (think I remember a/. article on this...but don't see it in the older section...could be simply delusional) as well as porting IE to Linux - embrace and extend from multiple fronts 3. Unix market share, viz NT, is crumbling (Linux is cannibalizing the commercial Unix marketshare for its own marketshare, rather than converting NT shops to Unix, IMHO)
But here is where I think it's different.
4. Linux DEVELOPMENT is non-commercial. The psychic well-being of the coders is not dependent on the fate of a single company, or stock options. Linux should retain its momentum and edge for at LEAST another year 5. Next year conflicts among Linux distributions become a much bigger issue as marketshare growth for Linux begins to flatten - most commercial Unices other than Solaris will probably be inconsequential by this time next year. (blatent, unfounded, bold, bull-ony prediction) 6. MS folds Linux-like functionality into NT, making the OS even more unweildy, but allowing MS to claim to the biz market it has all the good parts of Linux, without that bad lack-of-single-vendor part. Glossy mags go wild for MS LiNTux (thereby MS co-opts both Tux and Linux while keeping the NT brand).
7. Linux coders setup the "Free State of Silicon Valley and Finland," declare war on "The People's Republic of Redmond."
8. President Ventura intervenes, sending in the 101st Airborn and SeALs. As the first victorious third-party candidate in US history, he asserts that precedent to legally mandate all computers to run a third-party OS...BEOS!!!
The reason Lynx can't view it is that it is framed, and there is no way to break out of the frame. Here's a straight copy.
Creating a UNIX Application Using the Win32 API
Nancy Winnick Cluts
Microsoft Corporation
November 1998
Summary: Details the cross-platform development of Microsoft® Internet Explorer 4.0 for UNIX using the Microsoft Win32® API. (4 printed pages)
Introduction Yes, you read that correctly. I said that you can create a UNIX application using the Win32 application programming interface (API). And I have proof. Internet Explorer 4.0 for UNIX was written using the Win32 API. I bet you'd like to know how the team pulled that one off. (I know I did!) If you are interested in the details, read on.
At TechEd in New Orleans, LA, in June 1998, Digvijay Chauhan, Development Manager of the Internet Explorer UNIX team, outlined the cross-platform issues in Internet Explorer 4.0 (for a full list of cross-platform issues, search for my article "Internet Explorer Runs Cross-Platform" on the MSDN Online Web Workshop site at http://msdn.microsoft.com/workshop/) as well as how to use the Win32 API for cross-platform development. This article is based on the second part of his presentation: Win32 development on Unix. Another session, titled "Targeting Unix & Windows Platforms with a Single Code Base: A Case Study" (IOP05) was given at the Professional Developers Conference in Denver.
Win32 API on UNIX--A Case Study Imagine that you are on a development team and you are told that you need to develop a browser using the Win32 API and deliver it on both the Win32 and Unix (Solaris) platforms. In order to do this, you need to take into consideration the user interface differences as well as how you are going to actually code the application. X-Windows has a different user interface than Windows. With the pace of the software industry, you do not have the luxury of spending a lot of time and resources on this project--you must get this browser to market rapidly. You also must be sure the Unix version has the same rendering fidelity as the Win32 version. Finally, you must incorporate the Unix look. That's the challenge that the Internet Explorer UNIX team faced and met.
The targeted time frame was 2-3 months after the Win32 version shipped. The team consisted of approximately 50 people. There were about 600 Win32 functions that were used by Internet Explorer. There wasn't time to start from scratch and create their own Win32 layer for Unix, so they looked at vendors that already had such a layer, and tools available. They found two such vendors: Bristol and Mainsoft. Throughout this project, there were some issues the team had to solve, including differences in focus, the Component Object Model (COM), the registry, performance, fonts, UI issues, and portability.
Focus The biggest area of trouble (read: bugs) had to do with focus. On X-Windows, the user can configure the workstation for multiple Window Manager modes and each Window Manager supports multiple modes. This leads to some interesting differences in the use of focus on Unix versus Win32. On a Win32-based platform, when the user clicks the mouse once on a window, that window gains the focus. On X-Windows, you can configure your system such that the focus follows the mouse. That is, when you move the mouse to a window, the focus automatically moves to that window. The workstation can also be set up to support auto raise focus--when the window gets the focus it is automatically put in the foreground. X-Windows also supports the single-click to focus scheme that Win32 supports. The Internet Explorer Unix team had to make sure the browser they created also supported these different forms of focus.
Modality In Microsoft Windows®, it is common for developers to create modal windows. A modal window is a window that, when it has the focus, does not let any other window within the application get the focus until the window is dismissed. For example, if you click the View menu on Internet Explorer and choose Internet Options, you will bring up a window that stays in focus until it is dismissed--if you click the Internet Explorer main window, you will hear a ding and the window will not come into the foreground. Windows developers create modal windows through the use of the GetMessage, TranslateMessage, and DispatchMessage functions in a loop. X-Windows employs a Window Manager that must be told, via hints, whether a window is modal or not. Unfortunately, this information is only read once, when the window is shown. The solution to this difference was to use a new window style hint to tell the Window Manager the window modality prior to the window being shown.
COM Internet Explorer relies heavily on the Component Object Model (COM) in order to function. In fact, any of the window items you see that are outside of the client area of the screen (for example, the rebar, the dialog boxes, and so on) are all COM objects. They use COM to communicate between the browser and the other COM objects. One important portability problem faced by the team involved using C code to access COM object methods directly via virtual table (known as a vtable) structure pointers. The vtable layout is compiler-specific. As a result, the layout of the pointers is different on Solaris. The solution was to replace the C code accessing COM objects with C++ code.
Registry On Windows, the registry is used to store and access information such as user preferences. Most Windows applications read these values from the registry in order to persist data from session to session. In Unix, a user can log on to his workstation and use his home directory from any machine with all of his settings preserved. Because the registry resides on only one machine, this is problematic. The team had to figure out how to share registry information across machines.
Another registry-related issue is synchronization of registry settings across processes. Okay, that's a complex sentence. In real terms: Microsoft Internet Explorer and Microsoft Outlook® Express share registry settings. If you change a registry setting in Internet Explorer, Outlook Express immediately reflects the changes.
The solution was to keep the registry in a location that is shared by all workstations, leveraging a single home directory. This way, different processes, regardless of machine, can be in synch.
Performance The Internet Explorer Unix team created some simple and effective in-house performance tools to analyze performance bottlenecks and solve them. One tool wrapped all of the Win32 APIs in order to log the calls to the APIs as well as determine which thread called the API. This information was used to identify frequently used APIs and determine which should be optimized (the ones that were used often) and which were taking the most time.
Another tool was created to analyze heap space. This was done by mapping the memory allocation functions (malloc, realloc, and so on) along with thread identifiers. They were then able to identify resource hogs (image copy was a big one) and where they could group allocations in order to maximize performance.
In order to help in the debugging process, they created a program that modified exception-handling code to determine (via a stack trace) what caused Internet Explorer to crash. This was particularly helpful in determining if the testers had found a new bug or one that already existed, albeit in a new user scenario.
The final tool that was created was a quick and dirty profiler. This profiler would suspend all threads in a process, sample the program counter, and map the symbols to get a running count of where the application was spending most of its time. Here again, the team could go back and optimize that code.
Fonts There are a few exceptions to font support using Internet Explorer 4.0 on UNIX. Some fonts are simply not available on Unix. In general, Windows fonts will be mapped to those available on a particular Unix server. The Verdana, Arial, and Sans Serif fonts are mapped to the Helvetica font. The Marlett font is not supported on UNIX at all. Internet Explorer 4.0 Unix maps fonts to an equal or smaller point size. In addition, X-based servers can have different configurations and different font installations. As a result, it was necessary to map fonts for specific font installations on the server. Internet Explorer 4.x shipped some prebuilt font caches for standard server configurations. For nonstandard configurations, a font cache is built the first time the browser starts; however, this proved to cause a slowdown in startup. As a result, Internet Explorer 5.0 has changed to an alternate design.
Interface Issues The Windows interface is different from the look you get when you run X-Windows-based Motif or common desktop environment (CDE) applications. The Internet Explorer Unix team had to take into consideration the different appearance for their version of the browser. Some of the interface issues that the team had to address were:
A person running Unix is accustomed to using the + and + key combinations to position the cursor at the beginning or end of a line respectively.
Tab completion is also an expectation of the X-Windows user. Tab completion was implemented at the application level by the team.
The middle mouse button is also supported under X-Windows for copy-and-paste functionality.
Selected text is automatically copied to the Clipboard and available to be pasted into another application.
Menus stay dropped down after they've been clicked, even after the mouse moves away from the menu.
Common dialog boxes look different. For example, the CDE File Open common dialog box and scroll bar widgets are different from their Windows counterparts. Based on user feedback, the Internet Explorer team decided to stick with the Windows 3.1 File dialog boxes and the CDE widgets for scroll bars.
Multiple workspaces are supported by the Window Manager.
Additional system menus are supported under CDE.
CDE integration--including CDE color changes dynamically reflected in the application--required additional work.
Coding Issues--Portability Problems When it got down to coding, there were some interesting issues that the team had to solve, including:
The WCHAR is 4 bytes in most UNIX compilers and 2 bytes in Microsoft Visual C++®. As a result, there were many coding bugs found that assumed the size of a WCHAR was 2 bytes.
Global variables in Win32 dynamic-link libraries (DLLs) are visible across processes, so it is important that developers are careful that these globals do not conflict with any variables within the Unix shared libraries.
Win32 developers have come to rely on Win32 Structured Exception Handling (SEH) in their applications. Unix does not inherently support this. With the help of the Internet Explorer team, Mainsoft now includes fairly complete support for SEH in their Win32 layer.
Visual C++ makes use of keywords for alignment, such as unaligned. The Unix team had to write macros to do alignment.
Compilers for Unix do not support nameless nested structures.
Summary All of this was a lot of work and the Internet Explorer Unix team learned a lot from it. In the future, they plan to use a common code base between their Win32 and Unix versions so that a change in one will automatically be reflected in the other. They are planning to use the Apoge compiler (http://www.apogee.com/) for this common code base. They also plan to incorporate the feedback they get on interface issues. In the meantime, you now know that you, too, can develop your Unix application on Win32. The Internet Explorer team did it and so can you.
Of course, WINE continues to evolve - although very very slowly - and maybe we *will* have Win32 for Linux soon. I know this will offend the purists but being able to port something quickly to Linux can only help Linux's future, even if the resulting mess might not be very elegant.
Don't be too sure. Back in the time of OS/2 v2.x, IBM was pushing ISVs to release OS/2 versions of their windows software. This resulted in incredibly crappy ports (for example, WordPerfect 5.2 for OS/2), and OS/2 got blamed for the bad applications. (When in fact, good and native OS/2 applications were available from other vendors - the Describe word processor for example - but never got the attention they deserved.)
I remember, not too long ago, MS ported IE 3(?) to Solaris (?) and was saying that they were porting it to the two remaining big unicies (which were HP-UX and SCO, as I recall)
I tried IE for HP-UX last year. It stank: it was almost unbelievably slow; the GUI was a custom-designed job that looked like the illegitimate child of Windows and Motif; the Unix convention for config files (human-readable text files) was thrown out the window - the silly thing created a $HOME/.microsoft directory and wrote a registry into it.
It strikes me that Microsoft's engineers have a fundamental misunderstanding of what a port to Unix should be. It should have the functionality of the Windows original, but behave in a way typical of the target platform. The HP-UX port felt like a botched job.
Now they can squeeze the PC Makers again
by
nbor
·
· Score: 5
This seems to me to be a way to get back control of the straying PC makers. Now MS can demand that they install IE5 on Linux whenever the PC makers pre-install Linux. This is the thin edge of the wedgie, folks.
Nitin
-- The more idiot-proof you make it the smarter the idiots get.
Windows Version vs. Other Versions
by
Hrunting
·
· Score: 5
I suspect that this version won't be the IE that people have come to know. On my Windows machines, I use IE5 and I love it. It integrates rather nicely with the operating system, takes advantage of many of Windows' features, and provides a very smooth, stable browsing platform. I've also used IE4.5 for the Mac, and the complete opposite is true. It was slow, bloated, tended to crash a lot, and extremely clunky to use. Without the operating system's built-in mechanisms to take advantage of, IE becomes just another application and it's not particularly an efficient one.
I probably won't even touch IE for Linux if the rumor is true (I think it is; Microsoft legitimizes Linux as a competitor if they develop their software for it). Netscape, even the browser standalone is large enough as it is and I don't need another browser mussing up my system.
Re:IE for Linux would be welcome...
by
Megaweapon
·
· Score: 4
I basically agree, however, there is an increasing demand (at least in my company) for intranet web-based applications. Static content is fine, but having a web application is a great way to distribute functionality without the overhead of installing programs on client machines. Since most systems nowadays have web browsers, there is (usually) no additional work to be done. Just give them a URL. The problem as I see it is that the standard form elements provided are too simplistic. Simple text boxes, radio buttons, and drop down lists are fine but are limiting. Also, it was only recently that a standardized document object model was introduced by W3C. That, with a good scripting language, can lead to beautiful and functional applications that people can use in a familiar environment.
IE5 provides a nice platform for web applications. A well designed object model (proprietary, but it is well done) with generally solid scripting has allowed us to develop some really cool web pages. Given the newer standards released by W3C, Mozilla and other non-IE browsers should give Microsoft a run for their (lots of) money.
-- I'm sure "SlashdotMedia" will improve on all the wonders that Dice Holdings blessed us all with
I downloaded it. It is large, slow, and extremely crash-prone. On the other hand, it did consume all available memory (I can't run both Outlook and Explorer on my desktop, since I only have a measly 64 Mbyte of RAM.)
It is, unfortunately, a fairly typical Microsoft product. In Windows, IE is better than Netscape (by which I mean it's faster, uses less memory, and crashes less often), because they really need for it to be, and because they can get in bed with the OS. In Solaris, they don't seem to care. It is actually bad enough to make me wonder why they bothered.
- Head over to the Web Standards project, and note the troubles special HTML tags are even now causing.
- Ponder how many browsers are available for the general public. And why aren't they around? Because they can't handle the "real web", which is populated with lots of special tags? (recall that many of the "special" tags have been standardized after the fact, like CENTER)
- Consider whether the browser wars were NOT overhyped, but are, in fact, mostly over now. And Microsoft and Netscape both have tremendous influence on the Internet, with, say, Mosiac nothing but a faint memory.
It's not silly to think that... it's just that it already happened, and you no longer notice, because it's in the background.Does anyone actually _believe_ these announcements anymore? How many times have you heard "Microsoft is going to port product [x] to platform [y]." ? Now think about how many times it's actually happened.
Yawn. I suppose we need to keep an eye on Redmond. But --dang!-- those vaporware announcements are getting boring.
Reading a few of the other comments in this thread I just had a thought. Don't MS use IE as their active Desktop, and several people have suggested that IE would require a port of the Win32 interface.
/nasty/ X-Server/window manager combination but instead you could run a linux OS with IE5 sat directly on top (using something like an SVGA library) giving you your desktop.
Well could a Linux version of IE be a MS built window manager?
It is afterall the desktop users that MS is really concerned about... suppose you didn't need that
For people who understand X its wonderful and versatile as hell... but its also very complex and has plenty of security issues associated with it. Is that really what a simple end user wants?
Just imagine for a moment a box which ran the Linux kernal and a most of a normal distro and thus was remote adminable - but provided an end user with a windows interface and the same apps as they currently use.
I'd guess that each user would require their own registry or something - nasty as this might sound to some I can see the appeal.
The end user gets a familure box and doesn't need to learn anything new and the admins get remote access and proper file permissions.
like I said, just an idea
Tom
I am not the most expert of trollologists; I am sure that Slashdot has much better trollologists. I just got here first. Feel free to reply to this to add points I missed, or argue points you think I am wrong about.
How to Recognize a Troll
A troll is a form of luser that makes incindiary remarks in order to get others to lose their cool, thus making worse incindiary remarks and making complete fools out of themselves.
Many trolls are made by anonymous cowards; people who do not want to be recognized. But not every AC is a troll, and not every troller is an AC. Some will troll from their named accounts; those are the brave trolls. What we have here is a specimin of the more cowardly troll.
But more important than the username is the post. The "best" kind of troll post will make a remark specifically engineered to push the hot buttons of the group being trolled (here, Slashdot itself). Additionally, the perfect troll fails to give any useful or arguable information.
Two perfect trolling sentences here are, "The current Linux file system sucks" and "With MS beginning to support the Linux community, Linux will be an improved product.". both hit hit a Slashdot hot button (there is a lot of "Microsoft-is-evil/Linux-is-good" running around here). Both are too vague to provide any useful information.
The Dangers of a Troll
The danger here is that, without any real information to argue, the tendency is to degenerate into a flame war. "The current Linux file system sucks" is not even an arguable fact; it is a broadbased opinion, posted to a group of people who believe the opposite.
A properly placed troll can tempt otherwise rational people into portraying themselves as complete idiots. Especially with Microsoft, this is exceedingly dangerous.
Microsoft would love to portray the Linux community (including Slashdot) as knee-jerk jack-booted weirdo geeks. They want to show us as untrustworthy people who can fly off the handle. This is where Astroturfing comes in.
Microsoft performs "Astroturfing". This means starting up fake grassroots movements. They tried to do this to forestall the DOJ trial, and were exposed. I do not believe that they are above hiring people to troll Slashdot and similar things, in order to show us making complete fools out of ourselves.
How to respond to Trolls
The first thing is how not to respond to a troll. Don't let them sucker you in. Think before you post, and do not post a flaming ball of hatred. This will do you, and Slashdot as a whole, harm. That's why flames get moderated down. But they're still on the record, so you and we still get to look like idiots.
Often, the best way to respond to a troll is to ignore it. This pisses a troll off worse than anything. Some trolls will respond by trolling more. At this point, you get to watch them making complete fools out of themselves. Remember: it is better to be silent and thought a fool, then to speak up and remove all doubt.
The other thing one can do is to note the troll as such. Newbie users won't recognize trolls as well as old farts, so this helps keep the newbies from flaming the trolls. Here, moderation does this. The troll above was moderated up; I disagree with that, so I'm writing this to mark the troll as such.
Again, please feel free to add to this or correct me. Just Say No To Trolls.
--The basis of all love is respect
Whatever you do, dont install it... I installed IE for solaris once, and it completely hosed my Netscape installation... And anyone who does any UNIX programming knows that you have to purposely tell a program to write to disk and things dont happen by "accident" like it does with IE and netscape... I for one, will never install it on my computer if they do make it for linux.
So is this the same as MS vs. Netscape or different?
/. article on this...but don't see it in the older section...could be simply delusional) as well as porting IE to Linux - embrace and extend from multiple fronts
1. MS was afraid of Netscape
2. MS writes Navigator clone, then 'embraces and extends' it, bundling it into the Windows OS, giving it away for free
3. Navigator market share crumbles
4. Netscape loses momentum and edge, stock decreases (perhaps causing some Netscape coders to rethink their options...literally?)
5. IE 5.0 debuts to rave pundit reviews, Netscape is broken up and sold in pieces to two lesser industry evils...
1. MS is afraid of Linux
2. MS is NOW writing a Lunix clone (think I remember a
3. Unix market share, viz NT, is crumbling (Linux is cannibalizing the commercial Unix marketshare for its own marketshare, rather than converting NT shops to Unix, IMHO)
But here is where I think it's different.
4. Linux DEVELOPMENT is non-commercial. The psychic well-being of the coders is not dependent on the fate of a single company, or stock options. Linux should retain its momentum and edge for at LEAST another year
5. Next year conflicts among Linux distributions become a much bigger issue as marketshare growth for Linux begins to flatten - most commercial Unices other than Solaris will probably be inconsequential by this time next year. (blatent, unfounded, bold, bull-ony prediction)
6. MS folds Linux-like functionality into NT, making the OS even more unweildy, but allowing MS to claim to the biz market it has all the good parts of Linux, without that bad lack-of-single-vendor part. Glossy mags go wild for MS LiNTux (thereby MS co-opts both Tux and Linux while keeping the NT brand).
7. Linux coders setup the "Free State of Silicon Valley and Finland," declare war on "The People's Republic of Redmond."
8. President Ventura intervenes, sending in the 101st Airborn and SeALs. As the first victorious third-party candidate in US history, he asserts that precedent to legally mandate all computers to run a third-party OS...BEOS!!!
Ahem...sorry...got out of hand there.
The reason Lynx can't view it is that it is framed, and there is no way to break out of the frame. Here's a straight copy.
Creating a UNIX Application Using the Win32 API
Nancy Winnick Cluts
Microsoft Corporation
November 1998
Summary: Details the cross-platform development of Microsoft® Internet Explorer 4.0 for UNIX using the Microsoft Win32® API. (4 printed pages)
Introduction
Yes, you read that correctly. I said that you can create a UNIX application using the Win32 application programming interface (API). And I have proof. Internet Explorer 4.0 for UNIX was written using the Win32 API. I bet you'd like to know how the team pulled that one off. (I know I did!) If you are interested in the details, read on.
At TechEd in New Orleans, LA, in June 1998, Digvijay Chauhan, Development Manager of the Internet Explorer UNIX team, outlined the cross-platform issues in Internet Explorer 4.0 (for a full list of cross-platform issues, search for my article "Internet Explorer Runs Cross-Platform" on the MSDN Online Web Workshop site at http://msdn.microsoft.com/workshop/) as well as how to use the Win32 API for cross-platform development. This article is based on the second part of his presentation: Win32 development on Unix. Another session, titled "Targeting Unix & Windows Platforms with a Single Code Base: A Case Study" (IOP05) was given at the Professional Developers Conference in Denver.
Win32 API on UNIX--A Case Study
Imagine that you are on a development team and you are told that you need to develop a browser using the Win32 API and deliver it on both the Win32 and Unix (Solaris) platforms. In order to do this, you need to take into consideration the user interface differences as well as how you are going to actually code the application. X-Windows has a different user interface than Windows. With the pace of the software industry, you do not have the luxury of spending a lot of time and resources on this project--you must get this browser to market rapidly. You also must be sure the Unix version has the same rendering fidelity as the Win32 version. Finally, you must incorporate the Unix look. That's the challenge that the Internet Explorer UNIX team faced and met.
The targeted time frame was 2-3 months after the Win32 version shipped. The team consisted of approximately 50 people. There were about 600 Win32 functions that were used by Internet Explorer. There wasn't time to start from scratch and create their own Win32 layer for Unix, so they looked at vendors that already had such a layer, and tools available. They found two such vendors: Bristol and Mainsoft. Throughout this project, there were some issues the team had to solve, including differences in focus, the Component Object Model (COM), the registry, performance, fonts, UI issues, and portability.
Focus
The biggest area of trouble (read: bugs) had to do with focus. On X-Windows, the user can configure the workstation for multiple Window Manager modes and each Window Manager supports multiple modes. This leads to some interesting differences in the use of focus on Unix versus Win32. On a Win32-based platform, when the user clicks the mouse once on a window, that window gains the focus. On X-Windows, you can configure your system such that the focus follows the mouse. That is, when you move the mouse to a window, the focus automatically moves to that window. The workstation can also be set up to support auto raise focus--when the window gets the focus it is automatically put in the foreground. X-Windows also supports the single-click to focus scheme that Win32 supports. The Internet Explorer Unix team had to make sure the browser they created also supported these different forms of focus.
Modality
In Microsoft Windows®, it is common for developers to create modal windows. A modal window is a window that, when it has the focus, does not let any other window within the application get the focus until the window is dismissed. For example, if you click the View menu on Internet Explorer and choose Internet Options, you will bring up a window that stays in focus until it is dismissed--if you click the Internet Explorer main window, you will hear a ding and the window will not come into the foreground. Windows developers create modal windows through the use of the GetMessage, TranslateMessage, and DispatchMessage functions in a loop. X-Windows employs a Window Manager that must be told, via hints, whether a window is modal or not. Unfortunately, this information is only read once, when the window is shown. The solution to this difference was to use a new window style hint to tell the Window Manager the window modality prior to the window being shown.
COM
Internet Explorer relies heavily on the Component Object Model (COM) in order to function. In fact, any of the window items you see that are outside of the client area of the screen (for example, the rebar, the dialog boxes, and so on) are all COM objects. They use COM to communicate between the browser and the other COM objects. One important portability problem faced by the team involved using C code to access COM object methods directly via virtual table (known as a vtable) structure pointers. The vtable layout is compiler-specific. As a result, the layout of the pointers is different on Solaris. The solution was to replace the C code accessing COM objects with C++ code.
Registry
On Windows, the registry is used to store and access information such as user preferences. Most Windows applications read these values from the registry in order to persist data from session to session. In Unix, a user can log on to his workstation and use his home directory from any machine with all of his settings preserved. Because the registry resides on only one machine, this is problematic. The team had to figure out how to share registry information across machines.
Another registry-related issue is synchronization of registry settings across processes. Okay, that's a complex sentence. In real terms: Microsoft Internet Explorer and Microsoft Outlook® Express share registry settings. If you change a registry setting in Internet Explorer, Outlook Express immediately reflects the changes.
The solution was to keep the registry in a location that is shared by all workstations, leveraging a single home directory. This way, different processes, regardless of machine, can be in synch.
Performance
The Internet Explorer Unix team created some simple and effective in-house performance tools to analyze performance bottlenecks and solve them. One tool wrapped all of the Win32 APIs in order to log the calls to the APIs as well as determine which thread called the API. This information was used to identify frequently used APIs and determine which should be optimized (the ones that were used often) and which were taking the most time.
Another tool was created to analyze heap space. This was done by mapping the memory allocation functions (malloc, realloc, and so on) along with thread identifiers. They were then able to identify resource hogs (image copy was a big one) and where they could group allocations in order to maximize performance.
In order to help in the debugging process, they created a program that modified exception-handling code to determine (via a stack trace) what caused Internet Explorer to crash. This was particularly helpful in determining if the testers had found a new bug or one that already existed, albeit in a new user scenario.
The final tool that was created was a quick and dirty profiler. This profiler would suspend all threads in a process, sample the program counter, and map the symbols to get a running count of where the application was spending most of its time. Here again, the team could go back and optimize that code.
Fonts
There are a few exceptions to font support using Internet Explorer 4.0 on UNIX. Some fonts are simply not available on Unix. In general, Windows fonts will be mapped to those available on a particular Unix server. The Verdana, Arial, and Sans Serif fonts are mapped to the Helvetica font. The Marlett font is not supported on UNIX at all. Internet Explorer 4.0 Unix maps fonts to an equal or smaller point size. In addition, X-based servers can have different configurations and different font installations. As a result, it was necessary to map fonts for specific font installations on the server. Internet Explorer 4.x shipped some prebuilt font caches for standard server configurations. For nonstandard configurations, a font cache is built the first time the browser starts; however, this proved to cause a slowdown in startup. As a result, Internet Explorer 5.0 has changed to an alternate design.
Interface Issues
The Windows interface is different from the look you get when you run X-Windows-based Motif or common desktop environment (CDE) applications. The Internet Explorer Unix team had to take into consideration the different appearance for their version of the browser. Some of the interface issues that the team had to address were:
A person running Unix is accustomed to using the + and + key combinations to position the cursor at the beginning or end of a line respectively.
Tab completion is also an expectation of the X-Windows user. Tab completion was implemented at the application level by the team.
The middle mouse button is also supported under X-Windows for copy-and-paste functionality.
Selected text is automatically copied to the Clipboard and available to be pasted into another application.
Menus stay dropped down after they've been clicked, even after the mouse moves away from the menu.
Common dialog boxes look different. For example, the CDE File Open common dialog box and scroll bar widgets are different from their Windows counterparts. Based on user feedback, the Internet Explorer team decided to stick with the Windows 3.1 File dialog boxes and the CDE widgets for scroll bars.
Multiple workspaces are supported by the Window Manager.
Additional system menus are supported under CDE.
CDE integration--including CDE color changes dynamically reflected in the application--required additional work.
Coding Issues--Portability Problems
When it got down to coding, there were some interesting issues that the team had to solve, including:
The WCHAR is 4 bytes in most UNIX compilers and 2 bytes in Microsoft Visual C++®. As a result, there were many coding bugs found that assumed the size of a WCHAR was 2 bytes.
Global variables in Win32 dynamic-link libraries (DLLs) are visible across processes, so it is important that developers are careful that these globals do not conflict with any variables within the Unix shared libraries.
Win32 developers have come to rely on Win32 Structured Exception Handling (SEH) in their applications. Unix does not inherently support this. With the help of the Internet Explorer team, Mainsoft now includes fairly complete support for SEH in their Win32 layer.
Visual C++ makes use of keywords for alignment, such as unaligned. The Unix team had to write macros to do alignment.
Compilers for Unix do not support nameless nested structures.
Summary
All of this was a lot of work and the Internet Explorer Unix team learned a lot from it. In the future, they plan to use a common code base between their Win32 and Unix versions so that a change in one will automatically be reflected in the other. They are planning to use the Apoge compiler (http://www.apogee.com/) for this common code base. They also plan to incorporate the feedback they get on interface issues. In the meantime, you now know that you, too, can develop your Unix application on Win32. The Internet Explorer team did it and so can you.
© 1999 Microsoft Corporation. All rights reserved. Terms of use.
Mike
--
Mike
--
"Wi nøt trei a høliday in Sweden this yër?"
It took a bit of digging but here is the link to "Creating a UNIX Application Using the Win32 API" --
http://msdn.microsoft.com/isapi/msdnlib.idc?the
Beware Netscape users: This page will load a really slow Java applet designed to make you wish you had ActiveX.
--
Business. Numbers. Money. People. Computer World.
Don't be too sure. Back in the time of OS/2 v2.x, IBM was pushing ISVs to release OS/2 versions of their windows software. This resulted in incredibly crappy ports (for example, WordPerfect 5.2 for OS/2), and OS/2 got blamed for the bad applications. (When in fact, good and native OS/2 applications were available from other vendors - the Describe word processor for example - but never got the attention they deserved.)
I tried IE for HP-UX last year. It stank: it was almost unbelievably slow; the GUI was a custom-designed job that looked like the illegitimate child of Windows and Motif; the Unix convention for config files (human-readable text files) was thrown out the window - the silly thing created a $HOME/.microsoft directory and wrote a registry into it.
It strikes me that Microsoft's engineers have a fundamental misunderstanding of what a port to Unix should be. It should have the functionality of the Windows original, but behave in a way typical of the target platform. The HP-UX port felt like a botched job.
This seems to me to be a way to get back control of the straying PC makers.
Now MS can demand that they install IE5 on Linux whenever the PC makers pre-install Linux.
This is the thin edge of the wedgie, folks.
Nitin
The more idiot-proof you make it the smarter the idiots get.
I suspect that this version won't be the IE that people have come to know. On my Windows machines, I use IE5 and I love it. It integrates rather nicely with the operating system, takes advantage of many of Windows' features, and provides a very smooth, stable browsing platform. I've also used IE4.5 for the Mac, and the complete opposite is true. It was slow, bloated, tended to crash a lot, and extremely clunky to use. Without the operating system's built-in mechanisms to take advantage of, IE becomes just another application and it's not particularly an efficient one.
I probably won't even touch IE for Linux if the rumor is true (I think it is; Microsoft legitimizes Linux as a competitor if they develop their software for it). Netscape, even the browser standalone is large enough as it is and I don't need another browser mussing up my system.
I basically agree, however, there is an increasing demand (at least in my company) for intranet web-based applications. Static content is fine, but having a web application is a great way to distribute functionality without the overhead of installing programs on client machines. Since most systems nowadays have web browsers, there is (usually) no additional work to be done. Just give them a URL. The problem as I see it is that the standard form elements provided are too simplistic. Simple text boxes, radio buttons, and drop down lists are fine but are limiting. Also, it was only recently that a standardized document object model was introduced by W3C. That, with a good scripting language, can lead to beautiful and functional applications that people can use in a familiar environment.
IE5 provides a nice platform for web applications. A well designed object model (proprietary, but it is well done) with generally solid scripting has allowed us to develop some really cool web pages. Given the newer standards released by W3C, Mozilla and other non-IE browsers should give Microsoft a run for their (lots of) money.
I'm sure "SlashdotMedia" will improve on all the wonders that Dice Holdings blessed us all with
I downloaded it. It is large, slow, and extremely crash-prone. On the other hand, it did consume all available memory (I can't run both Outlook and Explorer on my desktop, since I only have a measly 64 Mbyte of RAM.)
It is, unfortunately, a fairly typical Microsoft product. In Windows, IE is better than Netscape (by which I mean it's faster, uses less memory, and crashes less often), because they really need for it to be, and because they can get in bed with the OS. In Solaris, they don't seem to care. It is actually bad enough to make me wonder why they bothered.