Sunday, January 31, 2010
Microwave Tanduree
Monday, December 18, 2006
The Linux Timeline
``Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.''
September 1991
Linux version 0.01 is released and put on the Net.
April 1992
The first Linux newsgroup, comp.os.linux, is proposed and started by Ari Lemmke.
October 1992
Peter MacDonald announces SLS, the first standalone Linux install. At least 10MB of space on disk was recommended.
June 1993
Slackware, by Patrick Volkerding, becomes the first commercial standalone distribution and quickly becomes popular within the Linux community.
August 1993
Matt Welsh's Linux Installation and Getting Started, version 1 is released. This is the first book on Linux.
March 1994
The first issue of Linux Journal is published. This issue featured an interview with Linus Torvalds and articles written by Phil Hughes, Robert ``Bob'' Young, Michael K. Johnson, Arnold Robbins, Matt Welsh, Ian A. Murdock, Frank B. Brokken, K. Kubat, Micahel Kraehe and Bernie Thompson. Advertisers in the premier issue include Algorithms Inc., Amtec Engineering, Basmark, Fintronic (later became VA Research, VA Linux Systems, then...), Infomagic, Prime Time Freeware, Promox, Signum Support, SSC, Trans Ameritech, USENIX, Windsor Tech and Yggdrasil.
Linux 1.0 is released.
June 1994
While at a conference in New Orleans, Jon ``maddog'' Hall persuades Linus to port Linux to DEC's 64-bit Alpha computer processor chip. Less than two weeks later, maddog had also persuaded DEC to fund the project. An Alpha workstation was immediately sent to Linus. ``Digital [DEC] and the Linux community formed the first truly successful venture of suits and Linux geeks working together'', said maddog.
Linux International, a nonprofit vendor organization, is founded by Jon ``maddog'' Hall. Linux International goes on to become a major contributor to the success of Linux, helping corporations and others work toward the promotion of the Linux operating system.
August 1994
Linux trademark dispute: is Linux trademarked? William R. Della Croce, Jr. files for the trademark ``Linux'' on August 15, 1994, and it is registered in September. Della Croce has no known involvement in the Linux community yet sends letters out to prominent Linux companies demanding money for use of the trademark ``Linux''. A lawsuit is filed in 1996 against Della Croce. Plaintiffs in the suit include Linus Torvalds; Specialized Systems Consultants, Inc. (publishers of Linux Journal); Yggdrasil Computing, Inc.; Linux International; and WorkGroup Solutions (also known as LinuxMall). The plaintiffs prevail, and in 1997 announce the matter as settled by the assignment of the mark to Linus Torvalds on behalf of all Petitioners and Linux users.
September 1994
Linux is first mentioned in the mainstream press. Wired magazine features an article titled ``Kernel Kid'', by Seth Rosenthal. He writes: ``So, is Linus going to become the Bill Gates of Finland? Maybe not. He claims to be 'by no means a good student' and is in no hurry to graduate since 'Linux has taken a lot of time from my studies, and I like the work I have at the University which keeps me alive.'''
Randolph Bentson reports on the world's first vendor-supported Linux device driver in Linux Journal. Cyclades gave him a multiport serial card in exchange for developing a Linux driver for it.
December 1994
A major tradeshow and conference take notice of Linux. Open Systems World features a Linux track, hosted by Linux Journal. Two days of seminars include Eric Youngdale, Donald Becker, Dirk Hohndel, Phil Hughes, Michael K. Johnson and David Wexelblat as speakers.
April 1995
Linux Expo, the first Linux-specific tradeshow and conference series, launches, thanks to the folks at North Carolina State University and in particular, Donnie Barnes. Speakers include Marc Ewing, Rik Faith and Michael K. Johnson, among others. Linux Expo snowballs and becomes the most popular and well-attended annual Linux show for the next several years (after three years Red Hat takes over organization and becomes the major sponsor). The price for entry into the exhibit hall and a pass to the conferences? $4.
January 1997
First ``Linux virus'' discovered. Called Bliss, it actually works on any UNIX-like OS and offers a helpful--``bliss-uninfect-files-please'' command-line option. Alan Cox points out that Bliss ``does not circumvent the security of the system, it relies on people with privilege to do something dumb'' and reminds users to install digitally signed software from trustworthy sites only and to check signatures before installing.
``In fact it's probably easier to write a virus for Linux because it's open source and the code is available. So we will be seeing more Linux viruses as the OS becomes more common and popular.''--Wishful thinking from McAfee
January 1998
Linux Weekly News begins publication with Jonathan Corbet and Elizabeth Coolbaugh as founders. The very first issue, dated January 22, was just a tiny hint of what LWN was to become.
Netscape announces that they will release the source to their browser under a free software license. This almost certainly remains one of the most important events of the year; it opened a lot of eyes to what Linux and free software could provide.
Red Hat Advanced Development Labs (RHAD) is founded. It has since become one of the higher-profile places where people are paid to develop free software and an important component of the GNOME Project. RHAD is able to attract developers like ``Rasterman'' (although only for a short time) and Federico Mena-Quintero.
February 1998
The Cobalt Qube is announced and immediately becomes a favorite in the trade press due to its high performance, low price and cute form factor. Cobalt's Linux engineering is done by none other than David Miller, the source of much that is good in the Linux kernel.
The Linux user community wins InfoWorld's technical support award; Red Hat 5.0 also won their Operating System award. But it was the tech support award that truly opened some eyes; everybody had been saying that Linux had no support. This was the beginning of the end of the ``no support'' argument.
Eric Raymond and friends come up with the term ``open source''. They apply for trademark status and put up the March 1998
Consumer advocate Ralph Nader asks the large PC vendors (Dell, Gateway, Micron, etc.) to offer non-Microsoft systems, including systems with Linux installed.
April 1998
Linux is covered by the US National Public Radio news, marking one of its first appearances in the mainstream, nontechnical press.
O'Reilly holds the ``first ever'' Free Software Summit, featuring Larry Wall, Brian Behlendorf, Linus Torvalds, Guido van Rossum, Eric Allman, Phil Zimmermann, Eric Raymond and Paul Vixie.
May 1998
The Google search engine pops up. Not only is it one of the best search engines around, but it's based on Linux and features a Linux-specific search page.
Big databases start to arrive. Support for Linux is announced by Computer Associates for their Ingres system and by Ardent Software for their O2 object database.
June 1998
``Like a lot of products that are free, you get a loyal following even though it's small. I've never had a customer mention Linux to me.''--Bill Gates, PC Week, June 25, 1998
``...these operating systems will not find widespread use in mainstream commercial applications in the next three years, nor will there be broad third-party application support.''--The Gartner Group says there is little hope for free software.
A Datapro study comes out showing that Linux has the highest user satisfaction of any system; it also shows Linux to be the only system other than Microsoft Windows NT that is increasing its market share.
IBM announces that it will distribute and support the Apache web server after working a deal with the Apache team.
July 1998
The desktop wars rage as KDE and GNOME advocates hurl flames at each other. Linus gets in on the act, saying that KDE is okay with him. In this context, KDE 1.0 is released. The first stable release of the K Desktop Environment proves to be popular, despite the complaints from those who do not like the licensing of the Qt library.
Informix quietly releases software for Linux. Meanwhile, Oracle beats Informix to the punch PR-wise and makes a Linux-friendly announcement first, suggesting that they would soon be supporting Linux. Oracle promises to make a trial version available by the end of 1998, a deadline they beat by months. This, seemingly, was one of the acid tests for the potential of long-term success for Linux; a great deal of attention resulted from both Informix's and Oracle's announcements.
Informix announces support for Linux effectively moments after Oracle does so. Sybase later announces their support for Linux also.
Linus appears on the cover of Forbes magazine. A lengthy story presents Linux in a highly positive manner and brings the system to the attention of many who had never heard of it before. Linux begins to become a household word.
September 1998
LinuxToday.com is launched by Dave Whitinger and Dwight Johnson. The site, later acquired by Internet.com, arguably becomes the most well-read and visited Linux portal of all time.
Microsoft's Steve Ballmer admits that they are ``worried'' about free software and suggests that some of the Windows NT source code may be made available to developers. The same month Microsoft goes on to list Linux as a competitive threat in its annual SEC (US Securities and Exchange Commission) filing. Speculation abounds that their real purpose is to influence the upcoming antitrust trial.
October 1998
``For the moment, however, the company from Redmond, Washington, seems almost grateful for the rising profile of Linux, seeing it as an easy way of demonstrating that Windows is not a monopoly, ahead of its antitrust trial, scheduled to begin on October 15. That may be short-sighted. In the long run, Linux and other open-source programs could cause Mr. Gates much grief.''--The Economist, October 3, 1998
Intel and Netscape (and two venture capital firms) announce minority investments in Red Hat Software. The money is to be used to build an ``enterprise support division'' within Red Hat. An unbelievable amount of press is generated by this event, which is seen as a big-business endorsement of Linux.
Corel announces that WordPerfect 8 for Linux will be downloadable for free for ``personal use''. They also announce a partnership with Red Hat to supply Linux for the Netwinder.
October 1998
A confidential Microsoft memorandum on Redmond's strategy against Linux and Open Source software was leaked to Eric S. Raymond. Raymond, with his own added commentary, releases the memorandum to the national press over Halloween Weekend. Because of all of the press surrounding the story, Microsoft was forced to acknowledge the now-infamous Halloween Document's authenticity. This was the first time the public heard Microsoft admit Linux was becoming stiff competition.
December 1998
A report from IDC says that Linux shipments rose by more than 200% in 1998, and its market share rose by more than 150%. Linux has a 17% market share and a growth rate unmatched by any other system on the market.
January 1999
``Microsoft Corp. will shout it out to the world when Windows 2000 finally ships. Linux creator Linus Torvalds announced the arrival of the next generation of Linux, version 2.2, with a simple note to the Linux-kernel mailing list.''--Steven J. Vaughan-Nichols, Sm@rt Reseller
Samba 2.0 is released. It contains a reverse-engineered implementation of the Microsoft domain controller protocols, allowing Linux servers to provide complete services to Windows networks.
Hewlett-Packard and Compaq announce plans to offer Linux-based systems. Later, Dell also announces plans to begin selling Linux-installed systems. SGI contents itself with providing information on how to bring up Linux on its systems.
Loki Entertainment Software announces that it will port Civilization: Call to Power to Linux.
February 1999
Linux and BSD users unite for ``Windows Refund Day''. They visit Microsoft, hoping to return the unused Windows licenses that they were forced to acquire when they purchased a computer system bundled with the OS.
March 1999
``Like a Russian revolutionary erased from a photograph, he is being written out of history. Stallman is the originator of the Free Software movement and the GNU/Linux operating system. But you wouldn't know it from reading about LinuxWorld (Expo). Linus Torvalds got all the ink.''--Leander Kahney, Wired magazine, March 1999
The first LinuxWorld Conference and Expo is held in San Jose, California. As the first big commercial ``tradeshow'' event for Linux, it serves notice to the world that Linux has arrived; 12,000 people are said to have attended.
Linux Magazine debuts, bringing some additional competition to the Linux print business. Later, other magazines rise and fall including Open, Journal of Linux Technology (JOLT) and Maximum Linux.
VA Research buys the April 1999
``...please imagine what it is like to see an idealistic project stymied and made ineffective because people don't usually give it the credit for what it has done. If you're an idealist like me, that can ruin your whole decade.''--Richard Stallman on GNU/Linux
Al Gore's presidential campaign web site claims to be open source. That claim is gone, but the site still claims: ``In the spirit of the Open Source movement, we have established the Gore 2000 Volunteer Source Code Project; HP announces 24/7 support services for the Caldera, Turbolinux, Red Hat and SuSE distributions. They also release OpenMail for Linux.
The Linux FreeS/WAN Project releases a free IPSec implementation, allowing Linux to function as a VPN gateway using what is now the industry standard.
``But the mere fact that there is now an official SEC document that includes the text of the GPL serves as fairly astonishing proof that the rules of the software business really are being rewritten.''--Andrew Leonard, Salon
May 1999
``Those two little words--open source--have become a magical incantation, like portal in 1998 or push in 1997. Just whisper them and all will be yours: media attention, consumer interest and, of course, venture capital.''--Andrew Leonard, Wired
August 1999
First Intel IA-64 ``Merced'' silicon. Although Intel had given simulators to several OS vendors, Linux is the only OS to run on the new architecture on its first day. The Register headline: ``Merced silicon happens: Linux runs, NT doesn't''.
SGI announces the 1400L--a Linux-based server system. SGI also announces a partnership with Red Hat and begins contributing to kernel development in a big way.
Red Hat's initial public offering happens; a last-minute repricing helps to create difficulties for people participating in the community offering. The stock price immediately rises to $50; a value that seems high at the time.
``For the umpteenth time, someone paved paradise, put up a parking lot. For the thousands of Linux coders who've built the utopian open-source movement--offering free help to create a free operating system--the IPO of Red Hat Software was a sure sign of Wall Street cutting the ribbon on the new Linux mall.''--The Industry Standard
Motorola jumps into Linux announcements of embedded systems products, support and training services, and a partnership with Lineo.
Sun acquires StarDivision; it announces plans to release StarOffice under the Sun Community Source License and to make a web-enabled version of the office suite.
September 1999
``'Burlington Coat Factory Warehouse Corp. in Burlington, New Jersey is spending $1 million or so to buy 1,250 Linux-equipped PCs from Dell, but it won't pay Red Hat a dime for support', says Michael Prince, chief information officer. 'I suppose Red Hat's business model makes sense to somebody, but it makes no sense to us', he says.''--Daniel Lyons, Forbes, May 31, 1999. Then in September, Burlington ended up purchasing support from Red Hat.
The first big Linux stock rush happens. Shares in Applix more than double in volume, reaching nearly 27 million shares--three times the 9 million shares that are actually on the market.
SCO trashes Linux in a brochure distributed in Northern Europe: ``Linux at this moment can be considered more a plaything for IT students rather than a serious operating system in which to place the functioning, security and future of a business. Because Linux is basically a free-for-all it means that no individual person/company is accountable should anything go wrong, plus there is no way to predict which way Linux will evolve.''
Stock in Red Hat hits $135/share. The price seems unbelievably high at the time.
October 1999
Sun Microsystems announces that it will release the source to Solaris under the Sun Community Source License. The actual release drew criticism: ``In a move aimed at Linux, Sun said it will announce Wednesday that it is making the source code for its new Solaris 8 operating system 'open'. Webster's has lots of definitions for the word, including 'not sealed, fastened, or locked'. But when you dig into the details of Sun's announcement, you'll find that what it is offering doesn't come close to meeting the dictionary's definition, let alone that of the Open Source movement.''--Lawrence Aragon, November 1999
``...if there's one thing about Linux users, they're do-ers, not whiners.''--Andy Patrizio,
Red Hat buys Cygnus for almost $700 million in stock. Rumors of other acquisitions by Red Hat begin to circulate and show no signs of stopping.
December 1999
VA Linux Systems goes public after two repricings (originally priced at $11-$13/share). The final IPO price is $30/share; that price rises immediately to $300 before closing around $250. It sets the record for the biggest IPO rise in the history of the NASDAQ.
``Gee. Remember when the big question was 'How do we make money at this?'''--Eric Raymond
January 2000
VA Linux Systems announces SourceForge (although the site had actually been up and running since November 1999). SourceForge also makes the code for its operation available under the GPL. By the end of the year, SourceForge hosted over 12,000 projects and 92,000 registered developers.
Version 1.0 of Red Flag Linux is released in the People's Republic of China.
Transmeta breaks its long silence and tells the world what it has been up to--the Crusoe chip, of course.
The Linux Professional Institute announces the availability of its first Linux professional certification exam.
Linux wannabe press releases flow from companies trying to ride on the success of Linux stocks. Vitamins.com, for example, posts the following: ``Vitamins.com has further distinguished itself in the competitive Internet health industry race by being one of the first to integrate the Linux Operating System, produced by Red Hat, the leading developer and provider of open-source software solutions.''
February 2000
The latest IDC report suggests that Linux now ranks as the ``second-most-popular operating system for server computers'', with 25% of the server operating system sales in 1999. Windows NT is first with 38% and NetWare ranks third with 19%. IDC previously predicted that Linux would get up to the number two position--in 2002 or 2003. The revolution appears to be well ahead of schedule.
VA Linux Systems acquisition of Andover.net in a high-profile purchase that values Andover shares at 0.425 of VA's, or roughly $50/share. Andover.net is the owner of the popular web sites LinuxMall.com and Frank Kaspar and Associates also have made plans to merge. LinuxMall.com has been at the top of the retail side of Linux almost since the very beginning; Kaspar is one of the largest distribution channels.
Red Hat wins InfoWorld's ``Product of the Year'' award for the fourth time in a row.
March 2000
``The law in open code means that no actor can gain ultimate control over open-source code. Even the kings can't get ultimate control over the code. For example, if Linus Torvalds, father of the Linux kernel, tried to steer GNU/Linux in a way that others in the community rejected, then others in the community could always have removed the offending part and gone in a different way. This threat constrains the kings; they can only lead where they know the people will follow.''--``Innovation, Regulation, and the Internet'' by Lawrence Lessig for The American Prospect.
A new version of LILO is posted that is able to get past the 1024-cylinder boot limit that has plagued PC systems for years.
The latest Netcraft survey shows Apache running on just over 60% of the Web.
Caldera Systems goes public after a short delay, on March 21. The stock, which was offered at $14/share, began trading at $26 and closed at $29.44. It thus registered a 110% gain on its first day.
``Caldera knows of no company that has built a profitable business based in whole or in part on open-source software.''--Caldera SEC filing
Walnut Creek (the parent company for Slackware) and BSDi announce their merger. Yahoo! will be taking an equity investment in the new company.
Motorola Computer Group announces the release of its HA Linux distribution. This distribution is aimed at telecommunications applications that require very high amounts of uptime; it includes hot-swap capability and is available for the i386 and PowerPC architectures.
The Embedded Linux Consortium is announced. Its goal is ``to amplify the depth, breadth and speed of Linux adoption in the enormous embedded computer market''. The initial leader will be Rick Lehrbaum, the man behind the Ericsson announces its ``Screen Phone HS210'' product--a Linux-based telephone with a touchscreen that can be used for e-mail, web browsing, etc. Ericsson and Opera Software also announce that Ericsson's (Linux-based) HS210 Screen Phone will incorporate the Opera web browser.
April 2000
Code is ruled to be speech. On April 4, 2000, the United States Court of Appeals for the Sixth Circuit published its decision regarding Peter Junger's challenge to the Export Administration Regulations that prevented him from posting information on the Internet that contained cryptographic example code. Most critical in the ruling: ``Because computer source code is an expressive means for the exchange of information and ideas about computer programming, we hold that it is protected by the First Amendment.''
Andy Tanenbaum releases the the Minix operating system under the BSD license. Had Minix been open source from the beginning, Linux may never have happened.
May 2000
SuSE releases the first supported Linux distribution for the IBM S/390 mainframe.
``Approximately 140 distribution companies exist across the globe. We believe all but the top five will be bought, will go out of business or will be relegated to insignificance. Market-share leaders are currently defined around geographic boundaries. Red Hat has the largest global brand recognition and leading North American market share; SuSE leads in Europe, Turbolinux leads in Asia, and Conectiva leads in South America.''--Keith Bachman, an analyst for WR Hambrecht, predicting in The Red Herring
June 2000
Commercial considerations help prompt the relicensing of MySQL under the GPL. Now the two freely available databases that are widely used in the Linux and Free Software communities, PostgreSQL and MySQL, meet the Debian Free Software Guidelines and the Open Source Guidelines. In addition, Progress Software forms a new company, NuSphere, just for the purpose of supporting MySQL.
July 2000
``In a world of NDA-bound business agreements, Debian is an open book. In a world of mission statements, Debian has a social contract. At a time when commercial distributors are striving to see how much proprietary software they can pack into a box of Linux, Debian remains the bastion of software freedom--living proof that you can have a fully functional and usable operating system without needing any proprietary code.''--Evan Leibovitch, ZDNet
Sun announces that StarOffice is to be released under the GPL. The code is going to be reworked, integrated with Bonobo and GTK, and released as a set of reusable components. StarOffice will also be reworked to use a set of open XML-based file formats.
Oracle's Linux-based internet appliance system hits the shelves. The ``New Internet Computer'' (NIC) is the latest result of Larry Ellison's long personal crusade to make non-Microsoft systems available to the world. It's aimed at people who only want access to the Net; as such, it's essentially a $199 (without monitor) X terminal.
Reports first appear that SCO may be purchased by Caldera. Later in 2000 Caldera and SCO announce their intent for Caldera International to be formed from Caldera's existing operation and two of SCO's three divisions.
Ted Ts'o steps forward to become the new 2.4 status list maintainer. Alan Cox was doing the job until he said that it was time to ``find someone else to maintain it''. Ted Ts'o responded to Linus' subsequent call for a new status list maintainer.
August 2000
HP, Intel, IBM and NEC announce the ``Open Source Development Lab'', which makes large hardware available to Linux developers for benchmarking and testing.
September 2000
``I'm a bastard. I have absolutely no clue why people can ever think otherwise. Yet they do. People think I'm a nice guy, and the fact is that I'm a scheming, conniving bastard who doesn't care for any hurt feelings or lost hours of work if it just results in what I consider to be a better system.''--Linus Torvalds trying to change his image.
The RSA patent expires, allowing for secure web transactions without proprietary software.
Trolltech releases the Qt library under the GPL, putting a definitive end to a long-running and unpleasant license flame war.
The CueCat fiasco begins. Digital Convergence attempts to shut down programmers who have written Linux drivers for its CueCat bar code scanner. The company has given out large numbers of these scanners for free, expecting people to use them with its proprietary software and web site. The threats cause the drivers to become marginally harder to find for a short period, after which the company declares victory and moves on.
October 2000
Microsoft says that penguins can mutate in a European print ad that quickly becomes famous.
December 2000
``I was dumbfounded to discover that installing Linux was easy. Why? Well, the world has changed. No more do you have to understand everything about Linux before you install it, downloading the many chunks of code necessary to run a complete system and getting them all to work together. That was BSW--before shrink-wrap. With companies such as Red Hat and Corel putting all the software you need in a box, the pain is (nearly) gone.''--John Schwartz, Washington Post
IBM announces plans to invest $1 billion in Linux in 2001.
January 2001
The long-awaited 2.4.0 kernel was released on January 4.
The US National Security Agency (NSA) releases SELinux under the GPL. SELinux offers an additional layer of security checks in addition to the standard UNIX-like permissions system.
March 2001
The Linux 2.5 kernel summit is held in San Jose, California; it is, perhaps, the most complete gathering of Linux kernel hackers in history.
April 2001
IBM gets into trouble over its ``Peace, Love and Linux'' graffiti in several cities.
``Slackware has always made money (who else producing a commercial distribution can say that?), but with BSDi we ended up strapped to a sinking ship.''--Patrick Volkerding
May 2001
Sony's PlayStation Linux kit, shipped in Japan, sells out in eight minutes despite a doubling of the available stock.
June 2001
Sharp announces its upcoming Linux PDA based on Lineo's Embedix system.
VA Linux Systems exits the hardware business, choosing to focus on SourceForge instead. Later VA drops the word ``Linux'' from its name altogether, relaunching as VA Software Corporation.
``In a press release issued Wednesday afternoon, VA Linux CEO Larry M. Augustin called the shift in strategy a logical move. 'Our differentiating strength has always been our software expertise', Augustin said''.--Wired. You only thought VA was a hardware company.
July 2001
Free Dmitry! Dmitry Sklyarov is arrested in Las Vegas after Adobe complains about the Advanced eBook Processor. The following month he is charged with DMCA violations and conspiracy: the potential penalties add up to 25 years in prison. Dmitry's defense is based on constitutional challenges to the DMCA, on free speech and jurisdictional issues. Later in the year, charges are dropped, conditional on one year of good behavior and testimony in the ElcomSoft trial.
``Although Adobe withdrew its support for the criminal complaint against Dmitry Sklyarov, we respect the grand jury and federal government's decision to prosecute the company, ElcomSoft, and as a law-abiding corporate citizen, Adobe intends to cooperate fully with the government as required by law.''--Adobe's position
November 2001
Sharp Electronics Corporation begins a special Linux developer prerelease of the Zaurus PDA to attract free software developers to the hot new platform.
February 2002
Avaya, the former PBX and enterprise systems division of Lucent, announces Linux-based PBX systems.
``So there are some--and I'd list myself among them--who believe that the return to Earth is a good thing. There's nothing wrong with making a buck, but Linux doesn't benefit from being elevated beyond reality on a shaky foundation.''--Evan Leibovitch takes a look at the post-rush world of Linux.
We would like to recognize our indebtedness to Rebecca Sobol and Jonathan Corbet at Linux Weekly News, for allowing us to borrow heavily from the timeline featured on their site and for their accurate and gracious historical editing.
Links
[1] http://opensource.org
[2] http://Linux.com
[3] http://www.algore2000.com
[4] http://Redherring.com
[5] http://www.linuxjournal.com/
[6] http://freshmeat.org
[7] http://LinuxDevices.com
[8] http://www.linuxjournal.com/
Tuesday, October 18, 2005
InstallSite: Windows Installer Merge Modules
Windows Installer Examples
The following sections present an example of authoring installation package for an application. An example of a minimal user interface for this sample is provided in the Platform SDK Components for Windows Installer Developers as the file Uisample.msi. If you have the SDK, you have access to all the tools and data necessary to reproduce this sample installation package and user interface.
For more information, see the following detailed examples:"
Tuesday, September 13, 2005
BhashaIndia.com :: Multilingual Application Development
.NET Data Access Architecture Guide :Drag-and-Drop Operations
Drag-and-Drop Operations and Clipboard Support
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbcondragdropclipboardsupport.asp
Architecture Guide is available at
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daag.asp
Sunday, August 07, 2005
Thursday, August 04, 2005
HowTo: Drag and drop using VB .NET
Thursday, July 14, 2005
Tuesday, April 26, 2005
Saturday, February 26, 2005
Customizing RedHat Linux Kickstart Installation Cdrom
Friday, February 25, 2005
Linux Networking Configuration
Adding a network interface card (NIC):
Manual method: This does not alter the permanent configuration and will only configure support until the next reboot.
cd /lib/modules/2.2.5-15/net/ - Use kernel version for your system. This example uses 2.2.5-15 Here you will find the modules supported by your system. It can be permanently added to /etc/modules.conf (or for older systems: /etc/conf.modules) Example: alias eth0 3c59x
/sbin/insmod -v 3c59x (For a 3Com ethernet card)
ifconfig ...
The easy way: Red Hat versions 6.2 and later, ship with Kudzu, a device detection program which runs during system initialization. (/etc/rc.d/init.d/kudzu) This can detect a newly installed NIC and load the appropriate driver. Then use /usr/sbin/netconfig to configure the IP address and network settings. The configuration will be stored so that it will be utilized upon system boot.
Systems with two NIC cards: Typically two cards are used when connecting to two networks. In this case the device must be defined using one of three methods:
Use the GUI tool /usr/bin/netcfg
OR
Define network parameters in configuration files:
Define new device in file /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.10.12
NETMASK=255.255.255.0
GATEWAY=XXX.XXX.XXX.XXX
HOSTNAME=node-name.name-of-domain.com
DOMAIN=name-of-domain.com
Special routing information may be specified, if necessary, in the file: /etc/sysconfig/static-routes Example:
eth1 net XXX.XXX.XXX.0 netmask 255.255.255.0 gw XXX.XXX.XXX.XXX
OR
Define network parameters using Unix command line interface:
Define IP address: ifconfig eth0 XXX.XXX.XXX.XXX netmask 255.255.255.0 broadcast XXX.XXX.XXX.255
ifconfig eth1 192.168.10.12 netmask 255.255.255.0 broadcast 192.168.10.255
If necessary, define route with with the route command: Examples: route add default gw XXX.XXX.XXX.XXX dev eth0
route add -net XXX.XXX.XXX.0 netmask 255.255.255.0 gw XXX.XXX.XXX.XXX dev eth0
Where XXX.XXX.XXX.XXX is the gateway to the internet as defined by your ISP or network operator.
If a mistake is made just repeat the route command substituting "del" in place of "add".
Configuration files:
File: /etc/resolv.conf - resolver configuration file
search name-of-domain.com - Name of your domain or ISP's domain if using their name server
nameserver XXX.XXX.XXX.XXX - IP address of primary name server
nameserver XXX.XXX.XXX.XXX - IP address of secondary name server
This configures Linux so that it knows which DNS server will be resolving domain names into IP addresses. If using DHCP, this will automatically be sent to you by the ISP and loaded into this file as part of the DHCP protocol. If using a static IP address, ask the ISP or check another machine on your network.
File: /etc/hosts - locally resolve node names to IP addresses
127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhost
XXX.XXX.XXX.XXX node-name
Note when adding hosts to this file, place the fully qualified name first. (It helps sendmail identify your server correctly) i.e.: XXX.XXX.XXX.XXX superserver.yolinux.com superserver
This informs Linux of local systems on the network which are not handled by the DNS server. (or for all systems in your LAN if you are not using DNS or NIS)
/etc/sysconfig/network
Red Hat network configuration file used by the system during the boot process.
/etc/nsswitch In the past this file has had the following names: /etc/nsswitch.conf, /etc/svc.conf, /etc/netsvc.conf, ... depending on the distribution.
File: /etc/nsswitch.conf - System Databases and Name Service Switch configuration file
hosts: files dns nisplus nis
This example tells Linux to first resolve a host name by looking at the local hosts file(/etc/hosts), then if the name is not found look to your DNS server as defined by /etc/resolv.conf and if not found there look to your NIS server.
File: /etc/sysconfig/network-scripts/ifcfg-eth0 Configuration settings for your first ethernet port (0). Your second port is eth1.
File: /etc/modules.conf (or for older systems: /etc/conf.modules)
Example statement for Intel ethernet card:
alias eth0 eepro100
Modules for other devices on the system will also be listed. This tells the kernel which device driver to use if configured as a loadable module. (default for Red Hat)
Network GUI Configuration Tools:
/usr/bin/redhat-config-network (/usr/bin/neat) (RH 7.2+)
/usr/bin/redhat-config-network-tui (text console RH 9.0)
/usr/sbin/netconfig (console. First interface only - eth0)
/usr/bin/netcfg (GUI) (no longer available with RH 7.2)
/usr/bin/redhat-control-network (Start/Stop network interfaces RH 9.0)
redhat-config-network-druid (Configure CIPE,Ethernet,modem,token Ring,Wireless or DSL)
/usr/bin/gnome-network-preferences Gnome Desktop Network Configuration (RH 9.0) - proxy configuration
The Red Hat configuration tools store the configuration information in the file /etc/sysconfig/network. They will also allow one to configure routing information.
File: /etc/sysconfig/network
Static IP address Configuration: (Configure gateway address)
NETWORKING=yes
HOSTNAME=my-hostname - Hostname is defined here and by command hostname
FORWARD_IPV4=true - True for NAT firewall gateways and linux routers. False for everyone else - desktops and servers.
GATEWAY="XXX.XXX.XXX.YYY" - Used if your network is connected to another network or the internet.
Static IP configuration. Gateway not defined here for DHCP.
OR for DHCP configuration:
NETWORKING=yes
HOSTNAME=my-hostname - Hostname is defined here and by command hostname
(Gateway is assigned by DHCP.)
File: /etc/sysconfig/network-scripts/ifcfg-eth0
Static IP address configuration:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=XXX.XXX.XXX.255
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
NETWORK=XXX.XXX.XXX.0
ONBOOT=yes
OR for DHCP configuration:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
(Used by script /etc/sysconfig/network-scripts/ifup to bring the various network interfaces on-line) To disable DHCP change BOOTPROTO=dhcp to BOOTPROTO=none
In order for updated information in any of these files to take effect, one must issue the command: service network restart
Changing the host name:
This is a three step process:
Issue the command: hostname new-host-name
Change network configuration file: /etc/sysconfig/network Edit entry: HOSTNAME=new-host-name
Restart systems which relied on the hostname (or reboot):
Restart network services: service network restart
Restart desktop:
Bring down system to console mode: init 3
Bring up X-Windows: init 5 One may also want to check the file /etc/hosts for an entry using the system name which allows the system to be self aware.
Usefull Linux networking commands:
/etc/rc.d/init.d/network start - command to start, restart or stop the network
netstat - Display connections, routing tables, stats etc
List externally connected processes: netstat -punta
List all connected processes: netstat -nap
Show network statistics: netstat -s
Kernel interface table info: netstat -a -i eth0
ping - send ICMP ECHO_REQUEST packets to network hosts. Use Cntl-C to stop ping.
traceroute - print the route packets take to network host
mtr - a network diagnostic tool - Like traceroute except it gives more network quality and network diagnostic info.
whois - Lookup a domain name in the internic whois database.
finger - Display information on a system user. i.e. finger user@host Uses $HOME/.plan and $HOME/.project user files. Often used by game developers. See http://finger.planetquake.com/
ipchains - IP firewall administration
tcpdump - dump traffic on a network
iptraf - Interactive Colorful IP LAN Monitor
socklist - Display list of open sockets, type, port, process id and the name of the process. Kill with fuser or kill.
nslookup - Give a host name and the command will return IP address. Also see Testing your DNS (YoLinux Tutorial) Note that nslookup does not use the /etc/hosts file.
host - Give a host name and the command will return IP address. Unlike nslookup, the host command will use both /etc/hosts as well as DNS.
nmap - Network exploration tool and security scanner
List pingable nodes on network: nmap -sP 192.168.0.0/24 Scans network for IP addresses 192.168.0.0 to 192.168.0.255 using ping.
Thursday, February 24, 2005
Using Grep - the Ultimate Filtering Tool
Command Syntax
grep [options] PATTERN [file....]
Grep searches the specified input FILE (or standard input is no files are specified, such as if you pipe something to grep) for lines that contain a match to the pattern. By default, the matches are printed to the screen. You can also encapsulate the pattern in quotes ("PATTERN").
Options
-a, --text : This option allows you to process a binary file as if it was a normal text file. This is equivalent to the --binary-files=text option.
-c, --count : Suppress the normal output. Instead print the number of matches found.
-h, --no-filename : Suppress the prefixing of filenames on output when multiple files are searched.
-i, --ignore-case : ignore case in the pattern and file names
-l, --files-with-matches : Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match.
Examples
Example: In this example we search the file called README.txt for lines that contain the word 'help'
grep "help" README.txt
Example: In this case, no file is specified. We will search the directory /etc for all files that contain the word "cron" in the filename.
ls /etc grep cron
Basically, what we just did is perform a directory listing, only displaying lines that contain "cron". Using the "" (pipe), the output from the ls command becomes the input for grep.
Advanced Grep Usage
Grep can also be piped multiple times. For example, the output of one grep command can be the input for the second one, and so on.
For example, we want to check the mail log for all emails that were sent from ernie@company.com. First we "cat" the maillog, which would output every line in the file to the screen. This is more information than we want, so we pass the output along to our first grep command. We search for all lines that contain "ernie". The -i option is used to ignore the case. So far, the syntax would be:
cat /var/log/maillog grep -i ernie
We are partially there. The result from this command outputs every line containing "ernie". But this also includes all places where ernie was the recipient as well as the sender. Next we filter out only the places where he was the sender:
cat /var/log/maillog grep -i ernie grep from
The output from this command lists all places in the mail log pertaining to ernie sending an email.
Josh's Example:
cat maillog grep "Dec 11" egrep "TO:<\w+@domain.com" -c
First I filtered out the maillog for entries of a certain day, then I filtered for entries:TO:ANYUSER@company.com
the -c command will only display the number of occurrences.
Linux Run-Levels
rc1.d - Single User Mode
rc2.d - Single User Mode with Networking
rc3.d - Multi-User Mode - boot up in text mode
rc4.d - Not yet Defined
rc5.d - Multi-User Mode - boot up in X Windows
rc6.d - Shutdown
Each mode has it's own list of settings for what services to start and what services to shutdown. Not only does this list contain what is supposed to be running, but also what order each service should be started in.
chkconfig - will list all the registered services and display thier status at each different run level.
Most of the time when your server boots up it will start in runlevel 3 or 5 depending on what it is set to. This setting can be found in the file /etc/inittab
If you ever want to change what mode your server defaults to on bootup, just edit that file, but NEVER change it to runlevel 6 or else you will set your server to shutdown on bootup.
RC.D Directory Explanation
In the folder: /etc/rc.d are all the run level folders starting from rc1.d to rc6.d and including init.d
It is in each of these rc#.d folders where the service run settings are kept. If you change directory into /etc/rc.d/rc3.d all the files that start with a capital S are the services that will start at this runlevel. All the files that start with a K are the services that will be killed at that runlevel.
The reason why services that are not supposed to run are still listed is because it is popular to switch a server from one run level to another instead of just booting into the needed run level. That way you can take your server offline (single user mode) and then apply a patch or do a file restore.
Let's take a closer look at these files that are inside the rc#.d folders. Notice that they are symbolic links to the script file located in /etc/rc.d/init.d This makes things very easy. All the commands to start, stop, or reload a service are handled by these scripts. So when a server is to go into a specific run level it can find the correct script and knows whether to start it based on its name and link path.
Switching Run Levels
init
Run levels are configured in /etc/inittab by lines like the following:
l2:2:wait:/etc/init.d/rc 2
The first field is an arbitrary label, the second one means that this applies for run level 2. The third field means that init should run the command in the fourth field once, when the run level is entered, and that init should wait for it to complete. The /etc/init.d/rc command runs whatever commands are necessary to start and stop services to enter run level 2.
The command in the fourth field does all the hard work of setting up a run level. It starts services that aren't already running, and stops services that shouldn't be running in the new run level any more. Exactly what the command is, and how run levels are configured, depends on the Linux distribution.
When init starts, it looks for a line in /etc/inittab that specifies the default run level:
id:2:initdefault:
You can ask init to go to a non-default run level at startup by giving the kernel a command line argument of single or emergency. Kernel command line arguments can be given via LILO, for example. This allows you to choose the single user mode (run level 1).
While the system is running, the telinit command can change the run level. When the run level is changed, init runs the relevant command from /etc/inittab.
The kernel, once it is loaded, finds init in sbin and executes it.
When init starts, it becomes the parent or grandparent of all of the processes that start up automatically on your Linux system. The first thing init does, is reading its initialization file, /etc/inittab. This instructs init to read an initial configuration script for the environment, which sets the path, starts swapping, checks the file systems, and so on. Basically, this step takes care of everything that your system needs to have done at system initialization: setting the clock, initializing serial ports and so forth.
Then init continues to read the /etc/inittab file, which describes how the system should be set up in each run level and sets the default run level. A run level is a configuration of processes. All UNIX-like systems can be run in different process configurations, such as the single user mode, which is referred to as run level 1 or run level S (or s). In this mode, only the system administrator can connect to the system. It is used to perform maintenance tasks without risks of damaging the system or user data. Naturally, in this configuration we don't need to offer user services, so they will all be disabled. Another run level is the reboot run level, or run level 6, which shuts down all running services according to the appropriate procedures and then restarts the system
Commonly, run level 3 is configured to be text mode on a Linux machine, and run level 5 initializes the graphical login and environment.
After having determined the default run level for your system, init starts all of the background processes necessary for the system to run by looking in the appropriate rc directory for that run level. init runs each of the kill scripts (their file names start with a K) with a stop parameter. It then runs all of the start scripts (their file names start with an S) in the appropriate run level directory so that all services and applications are started correctly. In fact, you can execute these same scripts manually after the system is finished booting with a command like /etc/rc.d/init.d/httpd stop or service httpd stop logged in as root, in this case stopping the web server.
None of the scripts that actually start and stop the services are located in /etc/rc.d/rc
Below a sample of /etc/rc5.d content, which lists the services started up in run level 5:
[jean@blub /etc/rc5.d] ls
K15httpd@ K45named@ S08ipchains@ S25netfs@ S85gpm@
K16rarpd@ K46radvd@ S08iptables@ S26apmd@ S90crond@
K20nfs@ K61ldap@ S09isdn@ S28autofs@ S90xfs@
K20rstatd@ K65identd@ S10network@ S30nscd@ S95anacron@
K20rusersd@ K74ntpd@ S12syslog@ S55sshd@ S95atd@
K20rwalld@ K74ypserv@ S13portmap@ S56rawdevices@ S97rhnsd@
K20rwhod@ K74ypxfrd@ S14nfslock@ S56xinetd@ S99local@
K25squid@ K89bcm5820@ S17keytable@ S60lpd@
K34yppasswdd@ S05kudzu@ S20random@ S80sendmail@
After init has progressed through the run levels to get to the default run level, the /etc/inittab script forks a getty process for each virtual console (login prompt in text mode). getty opens tty lines, sets their modes, prints the login prompt, gets the user's name, and then initiates a login process for that user. This allows users to authenticate themselves to the system and use it. By default, most systems offer 6 virtual consoles, but as you can see from the inittab file, this is configurable.
/etc/inittab can also tell init how it should handle a user pressing Ctrl+Alt+Delete at the console. As the system should be properly shut down and restarted rather than immediately power-cycled, init is told to execute the command /sbin/shutdown -t3 -r now, for instance, when a user hits those keys. In addition, /etc/inittab states what init should do in case of power failures, if your system has a UPS unit attached to it.
In run level 5, /etc/inittab runs a script called /etc/X11/prefdm. The prefdm script runs the preferred X display manager, based on the contents of the /etc/sysconfig/desktop directory. This is typically gdm if you run GNOME or kdm if you run KDE, but they can be mixed, and there's also the xdm that comes with a standard X installation.
The /etc/sysconfig directory contains entries for a range of functions and services, these are all read at boot time. This last part, however, might be somewhat different depending on your Linux distribution.
Besides the graphical user environment, a lot of other services may be started as well. But if all goes well, you should be looking at a login prompt or login screen when the boot process has finished.
Wednesday, February 16, 2005
Monday, February 14, 2005
Disable the close button on a Windows Form
CloseButtonRemove.vb
Option Explicit On
Option Strict On
Imports System.Runtime.InteropServices
Public Class CloseButtonRemove
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal revert As Integer) As Integer
Private Declare Function GetMenuItemCount Lib "user32" (ByVal menu As Integer) As Integer
Private Declare Function RemoveMenu Lib "user32" (ByVal menu As Integer, ByVal position As Integer, ByVal flags As Integer) As Integer
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Integer) As Integer
Private Declare Function FormatMessageA Lib "kernel32" (ByVal flags As Integer, ByRef source As Object, ByVal messageID As Integer, ByVal languageID As Integer, ByVal buffer As String, ByVal size As Integer, ByRef arguments As Integer) As Integer
Private Const MF_BYPOSITION As Integer = &H400
Private Const MF_DISABLED As Integer = &H2
Private Sub New()
End Sub
Public Shared Sub Disable(ByVal form As System.Windows.Forms.Form)
' Get handle to system menu for the form provided.
Dim menu As Integer = GetSystemMenu(form.Handle.ToInt32, 0)
' Get number of items in this system menu.
Dim count As Integer = GetMenuItemCount(menu)
' Remove last item from system menu (last item should be ’Close’).
If RemoveMenu(menu, count - 1, MF_DISABLED Or MF_BYPOSITION) = 0 Then
Throw New Exception(FormatMessage(Err.LastDllError))
Else
' On success, force a redraw of the system menu.
If DrawMenuBar(form.Handle.ToInt32) = 0 Then
Throw New Exception(FormatMessage(Err.LastDllError))
End If
End If
End Sub
Public Shared Function FormatMessage(ByVal [error] As Integer) As String
Const FORMAT_MESSAGE_FROM_SYSTEM As Short = &H1000
Const LANG_NEUTRAL As Short = &H0
Dim buffer As String = Space(999)
FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, [error], LANG_NEUTRAL, buffer, 999, 0)
buffer = Replace(Replace(buffer, Chr(13), ""), Chr(10), "")
Return buffer.Substring(0, buffer.IndexOf(Chr(0)))
End Function
End
Class
I've attempted to document the code fully so that it's easier to see what is going on. Also, bear in mind that most of the sample code floating around on the net doesn't take into account possible errors occuring doing this task in more of a brute force method. Based on the SDK documentation, I've added error checking where appropriate. Also, take note of the FormatMessage function that is included in this class. It may come in handy when your working with other Win32 Interop functions as it will (usually) return a string version of a numeric error value.
So, you might ask, what's the problem with this code? It does what was asked. Actually, it doesn't. The question was “How do I ***disable*** the close button?”; which would mean disabling the 'close' menu item as well... not deleting it from the menu.
The following code shows how to disable the close button according to the SDK documentation.
CloseButton.vb
Option Explicit On
Option Strict On
Public
Class CloseButton
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal revert As Integer) As Integer
Private Declare Function EnableMenuItem Lib "user32" (ByVal menu As Integer, ByVal ideEnableItem As Integer, ByVal enable As Integer) As Integer
Private Const SC_CLOSE As Integer = &HF060
Private Const MF_BYCOMMAND As Integer = &H0
Private Const MF_GRAYED As Integer = &H1
Private Const MF_ENABLED As Integer = &H0
Private Sub New()
End Sub
Public Shared Sub Disable(ByVal form As System.Windows.Forms.Form)
' The return value specifies the previous state of the menu item (it is either
' MF_ENABLED or MF_GRAYED). 0xFFFFFFFF indicates that the menu item does not exist.
Select Case EnableMenuItem(GetSystemMenu(form.Handle.ToInt32, 0), SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
Case MF_ENABLED
Case MF_GRAYED
Case &HFFFFFFFF
Throw New Exception("The Close menu item does not exist.")
Case Else
End Select
End Sub
End
Class
As you can see, we now only require two API declarations. Also, there are not LastDllError checks necessary in order to determine the error since our single call returns one of three values as described by the SDK documentation.
To use this code within your Windows Form application, just import one of the classes into your code and add the CloseButton.Disable(Me) line to your Form1_Load (as an example). For example:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CloseButton.Disable(Me)
End Sub
You will also need to add the following code to your form if you will be allowing the form to minimize or maximize:
Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
CloseButton.Disable(Me)
End Sub