May the source be with you, but remember the KISS principle ;-)
Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
(slightly skeptical) Educational society promoting "Back to basics" movement against IT overcomplexity and  bastardization of classic Unix

Softpanorama Unixification Bulletin, 2004

[Dec 29, 2004] InfoWorld Windows admin made easy October 29, 2004 By Jon Udell PLATFORMS

Jeffrey Snover thought so, too. Heís the architect of Monad, aka MSH (Microsoft (Profile, Products, Articles) Shell), the radical new Windows command shell first shown at the Professional Developers Conference last fall.

A meeting with Snover piqued my interest, as did his video demonstration on MSDNís Channel 9. This week, I finally got a chance to give this new tool a try. You donít need Longhorn, by the way. Iím running MSH on Windows XP (Overview, Articles, Company) with the 2.0 version of the .Net Framework that comes with the Visual Studio 2005 beta. My first reaction? MSH rocks. System administration on Windows, and ultimately everywhere, will be forever changed for the better.

At its core, MSH is an object pipeline. Unix, of course, invented the pipelining concept. But in Unix-like systems -- including Linux and OS X -- the data thatís passed from one command to the next is weakly structured ASCII text. When youíve got smart, self-describing objects flowing through that pipeline, itís a whole new ball game.

Recently, for example, I wrote a typical management script for a Windows 2003 Server. Its job was to filter a subset of running processes by name and then kill any of those exceeding a memory threshold. Using Python in conjunction with Mark Russinovichís PsTools suite, I did this in the time-honored way: List the processes, split the output into columns, associate the first and third columns with process name and memory use, and then finally identify and kill memory hogs.

Hereís the drill with MSH. You start by typing the command get-process. As does Unixís ps command, get-process prints a bunch of process statistics on the console. But under the covers, it emits a sequence of System.Diagnostics.Process objects. You can look up that class in the .Net Framework documentation, but itís easier to just ask an instance of the object to display its methods and properties. If there are too many to view conveniently on the console, pipe the information to an HTML file, a .Net grid control, or an Excel worksheet.

When youíve identified the properties of interest, itís trivial to isolate them, filter them, and pipe the filtered subset to the stop-process command. With a pipeline full of .Net objects, itís all oddly familiar yet dramatically easier.

MSH is quirky, complex, delightful, and utterly addictive. You can, for example, convert objects to and from XML so that programs that donít natively speak .Net can have a crack at them. Thereís SQL-like sorting and grouping. You write ad hoc extensions in a built-in scripting language that feels vaguely Perlish. For more permanent extensions, called cmdlets, you use .Net languages.

With MSH, Windows system administration manages to be both fun and productive. And the story will only improve as the .Net Framework continues to enfold Windowsí management APIs. Competitors take note: Windows is about to convert one of its great weaknesses into a strength.

[Dec 11, 2004] Download Free Windows 2000 Resource Kit Tools some useful Win 2K reskit tools

Codename MONAD

In one of the most overlooked cool things at the PDC (in my opinion, anyway), the new Command Shell that will be in Longhorn blew me away when I saw it.  I walked up to the booth asking if unix-like file aliases would be in the new shell, and was given a demo by the team that had my mind racing.

First off, file aliases are possible.  WinFS type queries are possible through new commands called ďcommandletsĒ that you can write.  Similar to the unix pipe, you can do this with MSH (Microsoft shell / codename MONAD) as well.  Query results are actually .NET objects, so you can do things like (Don't quote me on the syntax; I'm working from memory here):

$p = get/process FileName
foreach ($p) { $p.ToString() }

A rather simple example, but consider that you can do this from the command line!

You can do WinFS filtering through the ď|Ē  symbol. MONAD can also export natively to: HTML, XML, Excel, or plain command text in either a Table or List format.

And....the commandlets are developer friendly.  You can make a commandlet by inheriting from the commandlet base class, and adding attribute tags to the public properties to make them parameters to the commandlet.  .NET handles whether the user types ď-?Ē or ď/?Ē, so you don't have to care anymore!

I was all set to post that I had attended DOS's funeral after the keynote on Monday, but I wasn't prepared for what was being created to replace it.

One last thing: anything can be mapped to a drive, and drives don't just have to be letters. (Ok, I lied - that was 2) The example I was shown was that the registry was mapped to a drive, and you could navigate it like any other drive, with the results being returned from the commandlet as .NET objects!

# re: Codename "MONAD" 10/31/2003 10:17 AM TomH

I've been doing the euqivalent on Windows and Solaris with TkCon/tclsh for years.

# re: Codename "MONAD" 10/31/2003 10:19 AM Batgar

"Good artists copy, great artists steal"
-- Steve Jobs paraphrasing Andy Warhol

MSFT is not blind. They see OS X 10.2 (and OS X 10.3), Mandrake 9.x, RedHat 9.x, and they know where the bar is set.

MSFT has something that even Apple doesn't have: $40 billion cash.

MSFT can afford to create ANYTHING. The Longhorn command line is only the beginning. What little we have seen and heard of Longhorn is only the beginning (ex. WinFS). Remember: MSFT has been planning the major features in Longhorn since 1993 (ex. Cairo). MSFT is going to release Longhorn in direct response to the threats posed by Apple and the Open Source community. MSFT doesn't respond to percieved threats with a "fly swatter attack" they pull out the 80 megaton nuke and say "Come Get Some!".

Never underestimate Microsoft. The .NET technology suite should remind you that, when threatened, MSFT brings out the heavy stuff against that threat.

Coming Soon to Windows The Microsoft Shell (MSH)

With the advent of a new Command Line Interface (CLI) entitled MSH, Microsoft has greatly simplified server administration. Systems administrators can now learn about .NET classes while developers can easily extend the functionality by adding "MONAD" commandlets and providers; this is known as the "Glide Path". This article will show the syntax usage for the CLI as well as how to create basic commandlets.

Navigating Objects within the Microsoft Shell (MSH)

[Dec 14, 2004] Are Open Source apps for Windows bad for Linux (I don't think so)

Efforts to port parts of KDE to the Microsoft Windows platform prompted this question on Slashdot: Open Source on Windows - Boon or Bane for Linux?

As a person who uses both Microsoft Windows and Linux boxes on a daily basis, I think Open Source for Windows is a good thing and blog about it on my own site now at then when I spot an interesting FOSS application for Windows: Open Source for Windows blog

My take is that if Microsoft Windows has an estimated 90 to 95% of the desktop world and a good chunk of the server world, Open Source can get more noticed by more people and bring great applications and server options to the Windows world. I'd be hard pressed to function efficiently without WinSCP, Python, VNC, putty, JEdit and a bunch of other Open Source applications being available for Windows when I'm using that platform. So, I'd sure hate to see Open Source ports stop heading towards Windows.

[Dec 11, 2004] Inside the Windows 2000 Kernel Mark Russinovich is a senior contributing editor for Windows IT Proi> and chief software architect for Winternals Software.

[PPT] A Tour of Sysinternals Tools

NONAGS Command Line Tools - Freeware

Z.COM - switcher of video modes 2.04 for Win9x/NT4/ME/Win2k (16 kb)

 From NonagsPLUS (Members) (16 kb)
 Updated: Mar 27, 2000
 Author: Sergey Chehuta

 Description: This utility - switcher of video modes. This utility allows expand your abilities in work in text mode of monitor. You can set all standard modes and various modes such as: 80x30, 90x25, 90x30, 46x14, 36x17, 70x22, ......... You can change palette, emulate CGA, EGA, VGA monitor and other abilities... Free Tool Downloads

Neil's World - Speeding up Adobe Acrobat Reader, properly

Update: If all that is far too complicated, download Adobe Reader Speedup which will automate the process for you. Found via LG Windows Daily.

Iíve seen a couple of sites with hints to speed up Adobe Reader (aka version 6.0/6.0.1 of the Adobe Acrobat Reader software). I saw it first a few months ago on Henrik Gemalís blog, and then again on Darrel Nortonís Blog. They both recommend roughly the same thing, but in different ways, and Iíve found a combination of the two is best.

What you need to do is open Windows Explorer and navigate to C:\Program Files\Adobe\Acrobat 6.0\Reader\plug_ins (the folder may differ slightly if you installed Adobe Reader to another location). Under that folder is a subfolder called Ďplug_insí. Open that.

Now, hereís where the tips differ, and Iím going with Henrik here. Move all of the files and subfolders, except EWH32.api and Search.api, to the ĎOptionalí subfolder, which should be just above the Ďplug_insí folder in the hierarchy. If you read ebooks you may need to keep eBook.api and DigSig.api in the plug_ins folder as well.

Why this works - all of the files in plug_ins are loaded into memory on startup. But for the vast majority of PDF files out there, you donít need them, so theyíre only lengthening initialisation time and wasting your memory. On my system, which is a relatively typical machine, doing this saved at least 5 seconds off loadup time for the program, and I got similar savings on two other desktop machines today. This will vary, however - in some cases the improvement will be somewhat less since Adobe offers a full and Ďliteí version of the software, the latter being recommended for dial-up users, which includes fewer plugins.

As far as I am aware, putting the files in the Optional folder means that they are loaded only if they are needed, instead of all the time. You might get a little more milage by putting all the plugins into that folder but I havenít tried it and I donít imagine itíll make that much difference in any case.

I have also heard that version 6.0.1 of the software is noticably faster than the original 6.0, but I canít confirm this myself.

Itís a pity Adobe didnít design the Reader application so that only loaded these plugins when necessary, as it would make the program a lot more usable. I think one of the reasons why the program is somewhat less than popular is due to its long startup times so this would improve its image among web users.

Appsec.exe: Application Security

  1. Clusrest.exe: Cluster Quorum
    Ctrlist.exe: Counter List Last Updated: 11/12/1999 - Lists
  2. DcDiag.exe: Domain Controller Diagnostic Tool
    Analyzes the state of domain controllers in a forest or enterprise to assist in troubleshooting.
  3. DELRP.exe: Delete File and Reparse Points Last Updated: 09/25/1999 - Deletes a file or directory and any associated NTFS reparse points.
  4. Delsrv.exe Last Updated: 12/02/1999 - Unregisters a service with the service control manager.
  5. DH.exe: Display Heap Last Updated: 11/30/1999 - Displays information about heap usage in a user-mode process or pool usage in kernel-mode memory.
  6. Dhcpexim.exe: DHCP Database Export Import Tool Last Updated: 10/26/2001 - Exports a DHCP database and server configuration from a server running Windows NT 4.0 Server or Windows 2000 Server for import into a destination DHCP server running Windows 2000.
  7. Diruse.exe: Directory Disk Usage Last Updated: 12/02/1999 - Displays information about a disk and the contents of its partition table.
  8. Diskmap.exe Last Updated: 12/02/1999 - Displays information about a disk and the contents of its partition table.
  9. Diskpart.exe: Diskpart Command Line Utility Enables storage configuration from a script, remote session, or other command prompt.
  10. Dmdiag.exe: Disk Manager Diagnostics Last Updated: 11/19/1999 - Saves disk volume configuration to a text file and writes a signature to a disk partition.
  11. Drivers.exe: List Loaded Drivers Last Updated: 10/27/1999 - Displays information on installed device drivers, their files, and their code.
  12. Drmapsrv.exe: Drive Share Hotfix - Automatically configures NET SHARE and NET USE client drives for Terminal Services server access.
  13. Dumpel.exe: Dump Event Log Last Updated: 12/02/1999 - Dumps an event log to a tab-separated text file.
  14. Dumpfsmos.cmd: Dump FSMO Roles Dumps the Flexible Single Master Operations roles.
  15. Dureg.exe: Registry Size Estimator Last Updated: 11/04/1999 - Shows how much data is stored in the registry, or in any registry subtree, key, or subkey.
  16. Efsinfo.exe: Encrypting File System Information Last Updated: 11/04/1999 - Displays information about encrypted files on NTFS partitions.
  17. Exctrlst.exe: Extensible Performance Counter List Last Updated: 11/19/1999 - Displays information on extensible performance counter DLLs installed on a computer.
  18. Extract.exe: Extract Cabinet Last Updated: 11/12/1999 - Extracts files from cabinet (.cab) files.
  19. FAZAM 2000, Reduced-Functionality Version Last Updated: 08/03/2000 - Extends Group Policy management functionality of Windows 2000.
  20. Getmac.exe: GetMAC Last Updated: 12/02/1999 - Gets a computer's MAC (Ethernet) layer address and binding order.
  21. Getsid.exe: Get Security ID Last Updated: 12/02/1999 - Compares the security IDs of two user accounts.
  22. Gpotool.exe: Group Policy Verification Tool Last Updated: 11/04/1999 - Allows administrators to check Group Policy object integrity and monitor policy replication.
  23. Gpresult.exe: Group Policy Results Last Updated: 11/30/1999 - Displays information about the result Group Policy has had on the current computer and logged-on user.
  24. Guid2obj.exe: GUID to Object Last Updated: 12/02/1999 - Maps a GUID to a distinguished name.
  25. Heapmon.exe Last Updated: 10/27/1999 - Enables user to view system heap information.
  26. Hlscan.exe: Hard link display tool Last Updated: 09/11/2001 - Displays hard links on an NTFS volume or in specified files or directories of the volume.
  27. Ifmember.exe Last Updated: 09/07/2001 - Checks whether the current user is a member of a specified group.
  28. IIS Migration Wizard Last Updated: 05/16/2001 - Migrates Web server configuration settings.
  29. Installation Monitor Last Updated: 11/12/1999 - Tracks changes made by setup programs in the registry, .INI files, and other child processes.
  30. Inuse.exe: File-In-Use Replace Utility Last Updated: 11/04/1999 - Performs on-the-fly replacement of files currently in use by the operating system.
  31. Ipsecpol.exe: Internet Protocol Security Policies Tool Last Updated: 04/23/2001 - Configures Internet Protocol Security (IPSec) policies in the Directory Service, or in a local or remote registry.
  32. Kerbtray.exe: Kerberos Tray Last Updated: 11/30/1999 - Displays ticket information for a given computer running the Kerberos protocol.
  33. Klist.exe: Kerberos List Last Updated: 12/02/1999 - Views and deletes the Kerberos tickets granted to the current logon session.
  34. Netdiag.exe: Network Connectivity Tester Last Updated: 05/03/2000 - Helps isolate networking and connectivity problems.
  35. Now.exe Last Updated: 12/02/1999 - Echoes the current date and time plus any arguments passed to it.
  36. (Installd.cmd) Last Updated: 11/19/1999 - Installs a debug version of Startup Hardware Detector used for troubleshooting hardware detection issues.
  37. Oh.exe: Open Handles Last Updated: 11/12/1999 - Shows the handles of open windows, processes, or objects.
  38. Oleview.exe: OLE/COM Object Viewer Last Updated: 11/30/1999 - Browses, configures, and tests Microsoft Component Object Model classes installed on a computer.
  39. Pathman.exe: Path Manager Last Updated: 12/02/1999 - Adds or removes components of the system or user path.
  40. Perms.exe: File Access Permissions per User Last Updated: 12/02/1999 - Displays a user's access permissions for a file or directory.
  41. Pfmon.exe: Page Fault Monitor Last Updated: 11/30/1999 - Lists the source and number of page faults generated by an application's function calls.
  42. Pstat.exe: Process and Thread Status Last Updated: 11/30/1999 - Shows the status of all running processes and threads.
  43. Pulist.exe Last Updated: 12/02/1999 - Lists processes running on local or remote computers.
  44. Qslice.exe: CPU Usage by Processes Last Updated: 12/02/1999 - Shows the percentage of total CPU usage per process.
  45. Rdpclip.exe: File Copy Hotfix - Copies files between Terminal Services server and client.
  46. Relog.exe Last Updated: 9/11/01 - Extracts performance counters from logs created by the Performance Logs and Alerts service.
  47. RPCCfg.exe: RPC Configuration Tool Last Updated: 11/02/2001 - Configures Microsoft Remote Procedure Call (RPC) to listen on specified ports.
  48. Rpcdump.exe: RPC Dump Last Updated: 12/02/1999 - Dumps all endpoints in the endpointmapper database, pings each endpoint, gathers other stats, sorts and displays the data.
  49. RPC Ping: RPC Connectivity Verification Tool Last Updated: 11/03/1999 - Verifies that Windows 2000 Server services are responding to remote procedure call requests from network clients.
  50. Setspn.exe Last Updated: 05/08/2002 - Manage Service Principal Names for an Active Directory directory service account.
  51. Setx.exe Last Updated: 12/02/1999 - Sets environmental variables in the the user or computer environment.
  52. Showperf.exe: Performance Data Block Dump Utility Last Updated: 11/11/1999 - Dumps the contents of the Performance Data block so you can view and debug the raw data structure.
  53. Sonar.exe: FRS Status Viewer Monitors key statistics and status, including traffic levels, backlogs, and free space, of file replication service (FRS) replica set members.
  54. Soon.exe: Near-Future Command Scheduler Last Updated: 12/02/1999 - Schedules commands to run within the next 24 hours.
  55. Sysdiff.exe: Automated Installation Tool Hotfix - Pre-installs applications as part of an automated setup.
  56. Timethis.exe: Timethis Last Updated: 12/02/1999 - Times how long it takes to execute a given command.
  57. Tracedmp.exe: Trace Dump Last Updated: 11/22/1999 - Processes a trace log file or real time trace buffers and converts them to a .csv file.
  58. Traceenable.exe: Trace Enable Last Updated: 12/02/1999 - Enables tracing and displays current tracing options.
  59. Tracelog.exe: Trace Log Last Updated: 11/04/1999 - Starts, stops or enables trace logging.
  60. Terminal Server Capacity Planning Tools Hotfix - Suite of tools that assist organizations with Windows 2000 Terminal Services capacity planning.
  61. User State Migration Tool Last Updated: 06/12/2000 - Helps migrate a user's documents and settings (state) before an operating system migration to Windows 2000.
  62. Vadump.exe: Virtual Address Dump Last Updated: 11/30/1999 - Shows the state and size of each segment of virtual address space.
  63. Whoami.exe Last Updated: 12/02/1999 - Returns the domain or computer name and the user name of the user currently logged onto the computer on which the tool runs.
  64. Winsta.exe: WinStation Monitor Last Updated: 10/08/1999 - Monitors the status of all users logged on to a Windows 2000 Terminal Server.
  65. Wntipcfg.exe: Windows NT IPConfig Utility Last Updated: 05/07/2001 - Gives you information about your IP configuration.
  66. Xcacls.exe Last Updated: 05/08/2002 - Sets all file-system security options accessible in Windows Explorer.

Download Free Windows 2000 Resource Kit Tools

[Oct 19, 2004Hacking Windows XP Speeding Disk Access

This excerpt from the ExtremeTech book, Hacking Windows XP, shows you how to use the Intel Application Accelerator and fine-tune page-file settings to give your Windows XP apps more zip.

The Intel Application Accelerator
The Intel Application Accelerator is a great program, released by Intel, that will boost the performance of a user's system by optimizing the flow of information between the CPU and the storage devices. This improvement is accomplished by replacing the storage drivers that come with Windows XP with drivers that are optimized for their motherboards. According to Intel, the Application Accelerator will eliminate the data storage system bottleneck on the motherboard, which will allow the CPU to be more efficient and will speed up various aspects of the system.

On top of the bottleneck solution, which improves system performance, the Application Accelerator claims to increase application and even game performance because it will increase the speed of disk inputs and outputs. In other words, the applications and games can read and write data faster.

[Oct 17, 2004] PC Hacks for Linux Use the SystemRescueCD to repair a blown GRUB or LILO boot on double boot PCs.

Linux has advanced disk management and repair tools too. Of note is the SystemRescueCD from SystemRescueCD is offered as an ISO file that can be written to a CD-R to make a bootable rescue CD. The packages includes several essential tools for fixing Linux boot-up problems, including:

GNU Parted
Used for editing disk partitions under Linux.
A Linux-based clone of PartitionMagic.
A Linux-based clone of Ghost/Drive Image to create images of disks and partitions.
A tool that lets you back up and restore a partition table.

It also includes a variety of filesystem tools that allow you to format, resize, and debug an existing partition of your hard disk supporting e2fs, reiserfs, xfs, jfs, ntfs, and DOS partition types.

With these tools on hand, you may never have to reinstall a Linux operating system again.

[Oct 16, 2004] Utility to make USB flash drives bootable

I found a couple of links for creating bootable flash drives that I found useful.
How to boot from a USB device ... has good instructions, and this worked for me, and took about 20 minutes.

Then I found this utility: HP bootable flash utility. And it worked for me as well, and took about a minute.

The cool thing is, the HP utility is reported to work with many other flash drives - I have a no-name USB 2.0 thumb drive, made it bootable with the HP utility on a 1.1 USB bus, and then used it to boot a Via EPIA-M2 computer by setting the BIOS to "boot from USB hard drive".

Although I'm quite comfortable with the command line and a 2 page FAQ, running a GUI and clicking "make bootable" sure speeds things up.

[Oct 15, 2004]  The table of equivalents - replacements - analogs of Windows software in Linux. (Official site of the table) by Valery V. Kachurov, Artem Nesov and  Timofey Korolev

[Oct 14, 2004] Google Desktop 

Google Desktop is the newest thing from Google. It integrates seamlessly with the web-based Google; any search on the web now shows desktop results as well. Email messages that it finds are displayed in the browser window. It's supposed to index AOL chat logs as well as all the usual document types.

[Oct 10, 2004] Spyware became a real problem for Windows desktop. To help to fight it I created:

Technology solves the problem

After reading all of the blogs and comments on Clemens Vasters, Ryan Lowe, and Slashdot I would like to add my opinion to the matter.

My background is a bit different than some (certainly not all) Microsoft employees. Until roughly a year before I started working at MS, I developed almost exclusively on Linux with php, Java, and C++ and frankly, I donít see anything wrong with it. Iím a technologist first, a developer second, and an employee third. I use technology I like and I develop on platforms that make my life easier. Just because I work at Microsoft doesnít mean I wonít be critical of technology (be it MS, OSS, etc.). But to be fair, the reason I pursued a career at Microsoft is because I fell in love with their technology and developer tools. It is just as naÔve for a Linux user to look the other way at MS technology as it is for a MS advocate to not give OSS technologies a serious look.

Enough about me, lets talk about why companies implement OSS then Iíll discuss it from a developerís perspective.  Most companies arenít stupid.  They have CIOís being paid big bucks to understand thereís more to the total cost than the price on the box.  To that point, I donít think companies are buying or implementing OSS solutions because of cost.  They are doing it because someone, somewhere down the line, demonstrated value and vision in using that technology and more importantly Ė how that technology will improve their business. At the same time, many companies implement Microsoft technologies because they see value and vision in our technology.  Thatís what it is about, and it is what it should be about. Any CIO that makes technology decisions based on politics is making a huge mistake.  Let the industry demand innovation and technology, thatís your best bet. Donít settle for second best to prove a point because itís your company that will suffer in the end.  Additionally, the choices you make steer the industry.  If you purchase or implement a technology based on politics, you are giving the technology industry a false sense of direction.  Again, in saying this Iím not referring to any technology in particular as ď2nd bestĒ Ė thatís for you to decide.

My last thought is from a developer perspective.  There is absolutely nothing wrong with volunteering to write software.  I volunteer my time with several organizations, some involve programming others involve picking up trash.  I rarely, however, volunteer my time to companies that profit from my labor.  If you want to write software and distribute it freely Ė go for it! Thereís no problem in writing software for free. But, be prepared to see other companies making hundreds, thousands, millions, even billions off your work. If that doesnít bother you then more power to you. Itís not my place to give anyone advice.  But do understand that if that is your approach, itís not for everyone. Some people and companies see value in creating and selling software so they can invest more money in R&D to build better technologies. I am so incredibly blown away by the amount of R&D being done at Microsoft, and that amount of innovation would not be possible if their products were free.

In summary, I am irritated by developers and technologists who ignore the underlying technology and wage flame wars based on a platform or vendor. If it sucks, donít use it and donít develop on it. That will motivate that platform, vendor, initiative, consortium, whatever to either improve it or drop it. Thatís a good thing. When I feel Microsoftís technologies are sub-par, believe me Ė as a technologist, developer, and employee Iíll be the first one to admit it.

posted on Monday, March 08, 2004 7:13 PM

Dealing with the Unix Copy and Paste Paradigm

Common keyboard shortcut standard (Score:1)
by raarky (653241) on Wednesday June 02, @05:05PM (#9319165)

One of the main factors driving me to continue to use windows as a major productivity tool are the common keyboard shortcuts throughout each application and the os to perform tasks. Not just the basic cut n' paste, but also undo(ctrl-z), hightlight all(ctrl-a), the windows key shortcuts (win-m, win-d, win-e etc). The list goes on. If you want to do anything fast you need to use the keyboard. And in windows I assume that certain keystrokes will perform as implied. 95% of the time they will.

What linux needs is to agree on a common set of keyboard shortcuts. sort of a best practices that everyone adheres to.

yes you can "configure" everything to work the way you want, but how annoying is that? I don't want to spend my precious time setting up the computer. I just want to turn it on and have everything work.

One day... :)

How Linux Saved My Files and My Job

This guy is probably a pretty basic DOS user (hint Norton commander could be used to save data over serial of printer connection), but still there is some useful info in the paper.

This is a story of how Linux saved my life. Well, actually, not my life but perhaps my job. This is the story of how Linux helped me to recover some important data that I had almost given up on ever getting back, saving my employer and me a whole lot of time, effort and frustration in the process.

Picture the scene: you're sitting at your desk, writing some code for a client on your aging but reliable ThinkPad. Things all seem to be coming together nicely, and you're putting the finishing touches on the last unit test in the current package. You make a modification, press Ctrl and F11, and Eclipse fires up the JUnit. As you wait for the unit test progress bar to reach 100%, you notice that Eclipse literally has begun to crawl. It's true that Eclipse can be a memory hog at the best of times, but this is unusually severe. You turn away for a second, drum your fingers on the desk,and when you turn back, there's a big ugly blue screen of death (BSOD) staring you in the face.

Back in the days of Win95/98, BSODs were common, and NT had its fair share as well--I even had a joke BSOD screensaver at one point. But, Win2k is better in this regard, and a blue screen usually means something is seriously amiss. The message on the screen reads: KERNEL_DATA_INPAGE_ERROR. The only driver visible in the stack trace is atapi.sys, the IDE driver. You scribble down some details. A few minutes of judicious Googling may be able to shed some light on the problem--when the machine restarts. The Win2k memory dump takes an inordinately long time to complete. As you reboot after the dump is complete, you make a mental note to make a backup. It's been a long time since you backed up anything.

The Win2k progress bar gets about 70% across; it's still noticeably slower than normal now and then it bluescreens again. This time it reads INACCESSIBLE_BOOT_DEVICE. The cold hand of fear begins to tighten around you; this is not good. From bitter experience, you know that spontaneous errors related to boot devices are the worst. A few reboots later and nothing has changed. Powering off and then back on produces the same result, and safe mode is no better. It's at this point that you remember the code you were working on hasn't been checked into CVS yet. It was going to be refactored heavily before you added it to the source repository. You could try and place the blame on CVS and its propensity for making difficult the large-scale refactoring of a project structure--and this would be true--but the reality is you should have checked in the code earlier, if only to guard against such a situation. This really is going to mess up the deadline for this portion of the project deliverables. So what to do? Taking a deep breath, you weigh up the options and decide to try and find a way to recover the data.

In my case, at first glance, it seemed as though the hard drive or possibly even the drive controller was at fault. So, I grabbed an identical ThinkPad model and swapped the drives across. The other ThinkPad drive booted up fine, but the drive still was, to use the technical vernacular, knackered. I couldn't simply whip out the drive and attach it as a slave drive on another computer's IDE controller, this being a ThinkPad drive, and all.

My next port of call was the Windows 2000 install CD. I put it in and fired up the recovery console. I recently used the recovery console to restore a corrupted NT boot loader, so I figured it might do the trick here. At the least, I hoped I might be able to get a command-prompt view into the hard drive so I could run chkdsk. When I finally got to the DOS prompt, chkdsk didn't want to know about it. Drive C contains unrecoverable errors was all it wanted to say on the matter. So that option was out.

The next few hours were tedious and frustrating, to say the least. I alternated between three well-known disk recovery and repair software programs, formatting floppies, installing the programs onto the floppies and then attempting to run the programs against the damaged disk. The experiences varied, but the end result was always the same. One of the programs couldn't run without utilizing EMS (extended memory) on DOS, but its extended memory manager (EMM368.EXE) always crapped out, complaining that it couldn't find an unused 64K frame to use as extended memory. A look at the help for EMM386.EXE and a quick look at CONFIG.SYS and AUTOEXEC.BAT (thought I'd seen the last of those guys a few years ago) revealed that there were some settings to alter the locations at which EMM368.EXE probed for unused memory. However, I really didn't know what memory ranges I safely could specify, and the prospect of finding out by way of trial-and-error wasn't appealing. To make matters worse, any reference material I found on EMM386 was for the MS-DOS version; I was using Caldera DR-DOS.

I got similar results from the next program. It looked promising at first--it actually started enumerating through the filesystem on the disk. About 30% of the way through, however, it crashed with an ugly DOS page fault error.

Maybe if I could get a boot disk, I could get a DOS command prompt, I thought. So I dutifully looked around and found a great site called I downloaded the DOS 6.22 and Win98 SE boot disks. I decided to go with the Win98 SE boot disk, figuring it would have better support for long filenames and so on. I then dimly remembered a site I hadn't visited for a while, a Windows kernel development site called This site is a gem; it's full of hardcode techie info, plus loads of useful, tricky little utilities, including a lot of useful source code. The utility I was after was called NTFSDOS, and it basically consists of a driver (NTFSDOS.VXD) that allows read-only (for the free version) and read-write (for the pay version) access to NTFS from DOS. I downloaded the utility, stuck it on a floppy and booted into DOS. I ran NTFSDOS.EXE and, lo and behold, there was my drive--the first positive development all day.

I quickly browsed around the file structure and verified that things seemed to be intact. I then cataloged the important files I needed to rescue. The Trouble was my only media was a few floppies. This might seem okay in theory, but the more I browsed through the disk, the more stuff I found that I wanted to keep. Also, the source tree alone that I wanted to retrieve was pretty large. There also were things such as directories with 12 PowerPoint presentations at about 2MB apiece. I also had other essential items, .MAME for one. Clearly, this was not going to be easy. I searched around for a DOS NIC driver for my specific MiniPCI Ethernet/56k combo, but I couldn't find one anywhere.

At this point, things looked pretty bleak. Without a working NIC under DOS, I could spend about a week with a handful of floppies and a copy of PkZIP--not an ideal solution. It was at this point that I remembered using Linux once to recover some data from an NT server I ran in university. I also recently remembered a friend recounting to me how he had lost the administrator password to his Windows box and had reset it using a Linux-based boot floppy that altered the SAM. I shrugged and thought I might as well give it a try. No other practical options were left at this point.

I've been a Linux user since about 1997 and a FreeBSD user for the last couple of years, but I had never tried any of the floppy-based distros. I looked around and quickly came across a floppy distro called BG-Rescue Linux. This seemed to be a pretty capable little distro, specifically aimed at disaster recovery. The current version of BG-Rescue Linux is 0.3.1, which is compiled with kernel version 2.4.24, and it supported a host of Ethernet devices--it even had USB and PCMCIA network device support. A host of command-line utilities are provided by BusyBox, and BG-Rescue Linux uses the uClibC C library. What really made my eyes light up was the inclusion of NTFS support. This uses the LinuxNTFS driver, which is a complete and heavily improved rewrite of the older NTFS driver I had used. BG-Rescue Linux comes complete with the ntfsprogs package, which contains, among other things, tools to non-destructively resize an NTFS partition under Linux.

I downloaded the two floppy disk install images and wrote them onto two blank floppies using dd if=imagename.img of=/dev/fd0. I then inserted the first floppy into the stricken laptop and rebooted. The familiar Linux init sequence rolled up onto the screen, accompanied by a colorful Tux image. I was prompted for a preferred display resolution, followed by a prompt to insert the second floppy disk. It then unzipped its filesystem images into RAM, and a minute or so later I was sitting at a root shell prompt.

First of all, I checked to see if it had picked up the network card. A quick scan of the output of dmesg confirmed that it had found something, all right, and assigned it a driver. I set the IP address and netmask using ifconfig (ifconfig eth0 xx.xx.xx.xx. netmask yy.yy.yy.yy), and then attempted to ping another machine on the same network. It worked. A quick moment of elation ensued, and then it was on to the hard work--accessing and backing up the filesystem. Truth be told, it wasn't that hard at all. In fact, it was downright simple. My next step was to create the directory /mnt/win2k and mount my NTFS partition under that by running mount -t ntfs /dev/hda1 /mnt/win2k. Two seconds later, I had access to the entire NTFS directory tree. Things were finally starting to look positive.

The next step was to perform the actual file backups. I had a couple of options; BG-Rescue Linux comes with SMB and NFS support and also has cmdftp built in. Deciding to go for the quick-and-easy SMB share route, I hopped over to our new Dell server (running Red Hat 9) and set up a Samba share called, appropriately enough, disaster. Going back to the laptop, I accessed the share with smbclient, like so:

smbclient //xx.xx.xx.xx/disaster <password> 

where xx.xx.xx.xx was the Red Hat server's IP address. This dropped me into an FTP-like environment; it even had a similar command set (prompt, mget, mput). I was able to back up all of the necessary files and directory trees quickly and easily by turning on smbclient's recurse option to copy entire directory trees with one command. In fact, it would have been even easier if the smbfs filesystem was supported and smbmount was included in the command set for the distro--a suggestion for the next release of BG Rescue, perhaps?

So, now I'm writing this article on a backup laptop. My new one currently is on order. Both work and personal data has been recovered and dutifully backed up, the project manager was placated and I'm overall safe in the knowledge that I have come out pretty well from this potentially disastrous situation, thanks to Linux. More specifically, thanks to the maintainer of BG-Rescue Linux, an invaluable distro for this type of situation.

Bart's Preinstalled Environment (BartPE) bootable live windows CD-DVD

Re:Windows XP was a complete rewrite? by foo fighter (Score:2) Thursday January 15, @03:17PM

SFU 3.5 also provides a NFS server for Windows and a NIS to Active Directory gateway.

Yeah, its pretty nice (Score:2)
by Nailer (69468) on Wednesday January 14, @07:20PM (#7980033)
NFS shares show up under the network neighborhood, and you can mount them to a directory or drive letter just like you can SMB shares.
Re:so lets make this simple (Score:5, Informative)
by Baudhuin (733629) on Wednesday January 14, @03:16PM (#7977141)
By way of some background:

The NFS client as of 3.0 is an improvement over the prior version in that it transparently conveys perms and ownership (according to whatever mapping has been established). It has support for a /net sort of mapping within the Interix/POSIX subsystem, which is nice but fairly slow (though I note that this was particularly apparent to me because I was working remotely over DSL; I suspect there was a fair amount of roundtripping).

In general, however, I think that NFS client access by way of the Win32 subsystem (i.e., not in the Interix POSIX subsystem) is pretty fast, though you might lose some of the perms transparency and there is no /net and it might not handle symlinks nicely. I remember benchmarking a version of the software prior to it being integrated in SFU, and it was about 3x faster than Samba in a LAN setting. [Kind of a an informal metrics: I was compiling a large project with network-based sources.]

It will be interesting to see if the performance within the POSIX has improved with the new version (3.5).
Interix is definitely a better approach. (Score:2)
by argent (18001) <[email protected]> on Wednesday January 14, @02:51PM (#7976823)
Dave Korn gave a talk a few years back at Usenix about Cygwin's security, and it doesn't seem to have changed from the "big global common" model.

Interix is something I have been following and using for some time now, and it is based on the POSIX subsystem... the company that developed it licensed the POSIX subsystem code from Microsoft and basically fixed it. It doesn't run under Win32, though you can call into Win32 from it. And it gives real UNIX file system semantics on NTFS including "lazy locking".

It's MUCH easier to port code to, and you don't have to care that there's NT somewhere under the hood most of the time.

OpenBSD used in MS Services for Unix 3.0

Microsoft knows were the quality is ;-) The fact the Microsoft/Interex felt it was okay to use this code is an affirmation that the BSD license as serving its intended purpose, to promote the use and adoption of BSD licensed  code. It is also an affirmation of the quality of the code if a company is willing stake it's reputation on it. I see all of this as good thing."
Contributed by Dengue on Saturday September 27, @ 09:00AM
from the I-thought-it-was-stfu... dept.

Richard R Charron writes:
"I installed MS Services for UNIX 3.0 at a client's site, fired up a C Shell, did a "strings * | grep -i bsd" and what do you know... OpenBSD!"

Script started on Sat Sep 13 01:12:33 2003
Script flushing every 30 seconds
$ uname -a Interix burnt 3.0 SP-7.0.1701.1 x86 Pentium II/Celeron/Xeon (rev0x0501)
$ pwd /bin
$ strings * | grep -i bsd 
$OpenBSD: strlen.c,v 1.3 1996/08/19 08:34:19 tholo Exp $
$OpenBSD: strlen.c,v 1.3 1996/08/19 08:34:19 tholo Exp $
$OpenBSD: strcpy.c,v 1.4 1996/08/19 08:34:14 tholo Exp $
$OpenBSD: strncpy.c,v 1.2 1996/08/19 08:34:22 tholo Exp $
$OpenBSD: strncmp.c,v 1.3 1996/08/19 08:34:21 tholo Exp $
$OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $
$OpenBSD: memchr.c,v 1.2 1996/08/19 08:34:04 tholo Exp $
$OpenBSD: memset.c,v 1.2 1996/08/19 08:34:07 tholo Exp $
$OpenBSD: at.c,v 1.20 2001/01/17 19:29:06 deraadt Exp $
$OpenBSD: panic.c,v 1.5 2000/11/17 18:40:50 deraadt Exp $
$OpenBSD: parsetime.c,v 1.9 2000/01/05 08:06:25 millert Exp $
$OpenBSD: perm.c,v 1.1 1997/03/01 23:40:12 millert Exp $
$OpenBSD: fts.c,v 1.15 1998/03/19 00:30:01 millert Exp $
$OpenBSD: strstr.c,v 1.2 1996/08/19 08:34:27 tholo Exp $
$OpenBSD: syslog.c,v 1.9 2000/01/02 23:35:58 hugh Exp $
$OpenBSD: du.c,v 1.4 1997/01/15 23:42:25 millert Exp $
$OpenBSD: strcat.c,v 1.4 1996/08/19 08:34:10 tholo Exp $
$OpenBSD: expand.c,v 1.3 1998/01/22 17:41:09 deraadt Exp $
$OpenBSD: find.c,v 1.5 1997/06/30 23:54:07 millert Exp $
$OpenBSD: function.c,v 1.10 1997/09/01 02:44:19 millert Exp $
$OpenBSD: ls.c,v 1.4 1997/06/30 23:47:44 millert Exp $
$OpenBSD: misc.c,v 1.4 1997/06/30 23:54:08 millert Exp $
$OpenBSD: operator.c,v 1.2 1996/06/26 05:33:12 deraadt Exp $
$OpenBSD: option.c,v 1.6 1996/12/23 04:58:11 millert Exp $
$OpenBSD: vis.c,v 1.6 2000/11/21 00:47:28 millert Exp $
$OpenBSD: names.c,v 1.13 2001/01/16 05:36:08 millert Exp $
$OpenBSD: getname.c,v 1.4 1997/07/14 00:24:27 millert Exp $
$OpenBSD: fio.c,v 1.18 2001/01/16 05:36:08 millert Exp $
$OpenBSD: aux.c,v 1.16 2001/01/16 05:36:08 millert Exp $
$OpenBSD: list.c,v 1.10 2001/01/16 05:36:08 millert Exp $
$OpenBSD: head.c,v 1.6 2001/01/19 04:11:28 millert Exp $
$OpenBSD: lex.c,v 1.23 2001/06/23 23:04:23 millert Exp $
$OpenBSD: cu.c,v 1.4 1997/09/01 23:24:24 deraadt Exp $
$OpenBSD: hunt.c,v 1.6 1997/09/01 23:24:24 deraadt Exp $
$OpenBSD: log.c,v 1.3 1997/09/01 23:24:25 deraadt Exp $
$OpenBSD: partab.c,v 1.3 1997/04/02 01:47:02 millert Exp $
$OpenBSD: remote.c,v 1.7 1997/09/07 12:23:59 provos Exp $
$OpenBSD: tip.c,v 1.8 1997/09/01 23:24:26 deraadt Exp $
$OpenBSD: tipout.c,v 1.6 1997/09/01 23:24:27 deraadt Exp $
$OpenBSD: uucplock.c,v 1.5 1997/09/01 23:24:27 deraadt Exp $
$OpenBSD: value.c,v 1.5 1997/09/01 23:24:28 deraadt Exp $
$OpenBSD: vars.c,v 1.2 1996/06/26 05:40:50 deraadt Exp $
$OpenBSD: biz22.c,v 1.4 1997/04/02 01:47:05 millert Exp $
$OpenBSD: courier.c,v 1.6 1997/09/01 23:24:28 deraadt Exp $
$OpenBSD: df.c,v 1.3 1996/06/26 05:40:52 deraadt Exp $
$OpenBSD: dn11.c,v 1.3 1996/06/26 05:40:53 deraadt Exp $
$OpenBSD: hayes.c,v 1.6 1997/04/02 01:47:06 millert Exp $
$OpenBSD: t3000.c,v 1.5 1997/04/02 01:47:07 millert Exp $
$OpenBSD: v3451.c,v 1.4 1997/04/02 01:47:07 millert Exp $
$OpenBSD: v831.c,v 1.4 1997/04/02 01:47:08 millert Exp $
$OpenBSD: ventel.c,v 1.5 1997/04/02 01:47:08 millert Exp $
...lots more output...
$ exit
Script done on Sat Sep 13 01:13:00 2003

It looks to me like the Interix team pulled from the 3.0 release tree. For the official party line on sfu, see: Among other things, Services for Unix provides all of those nifty userland UNIX utilities on Windows(tm). You know, the same ones you can get for free with MinGW or Cygwin.

[Jan 14, 2004] Microsoft takes on Linux with free tools CNET

Regardless of whether or not it backfires, it _does_ help interoperability, and that is a Good Thing no matter how you look at it. Almost nobody is exclusively Unix or MS, nor should they necessarily be.

The company is expected to release on Thursday a new version of Services for Unix (SFU), a collection of tools that help Windows systems to work with installations based on the Unix operating system and its open-source derivative, Linux.

"Microsoft previously charged $99 per client or server to use SFU. But the new version, 3.5, will be free for any customer using a current Windows operating system..."

[Jan 2, 2004] Two nice windows implementations of Unix tools



Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2021 by Softpanorama Society. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to to buy a cup of coffee for authors of this site


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 12, 2019