Archive for May, 2011

ReactOS for hardware companies and GNU/kwin32

Tuesday, May 31st, 2011

ReactOS can be useful for hardware companies looking for a cheap simple platform to show off their hardware when they only have a driver for Microsoft Windows.

Linux tools may someday be even easier to get for Windows though the Debian project. Cygwin and MinGW are good, but Debian has more resources to help maintain a larger number of programs. The Debian win32 mailing list has discussed several efforts for the port.

ReactOS is an Open Source operating system that aims for Windows compatibility. I used to work at Linear Systems Ltd., a computer engineering company that mainly developed hardware for the broadcast industry, but had specialized software as well. While working there I got increasingly interested in ReactOS.

Why my interest in ReactOS?

  • It’s free.
  • It’s Open Source.
    • It’s easier to debug low level issues when you have all the source code.
    • It’s easier to customize low level options when you have all the source code and can search and modify it.
    • Working on it I can give back to the community that gives to me.
  • Contributing and using ReactOS might make tools only available on, or more easily available from Linux also be available on Microsoft Windows (as I sometimes have to use Microsoft Windows).

To answer my questions in my notes:

  • ReactOS does support WDM drivers.
  • I never did find out if the Linear Systems driver would work on ReactOS which is a pity. I believe the driver is a free download so someone with hardware can give it a try.
  • The Linear Systems NDIS driver is likely now unsupported as there are no new parts needed to build the required hardware.
  • debian-win32 is largely a dead list now. I still periodically check the list archives. There have been some interesting new efforts to port dpkg and apt to Windows, but none that have done both using MinGW. Many of the supposed technical problems have either been removed in newer versions of Windows, or perhaps didn’t exist. This however seems like a different post.
  • It seems mingw is the way to go to have glibc support for Microsoft Windows and ReactOS.
  • Debian GNU/win32 may be more possible given the success of the Debian GNU/kFreeBSD port that uses glibc on the FreeBSD kernel.
  • To get Debian onto the win32 kernel, the base packages need to be updated. There are existing ports of dpkg to windows through at least cygwin. The Emdebian project may have made this easier with simplifying what needs to be ported with projects like Emdebian Crush that puts off issues like porting a vanilla Perl to Windows. I should not however that there is a project to port vanilla Perl to windows called: Vanilla Perl.
  • ReactOS licenses allow it to be used for commercial purposes.
  • ReactOS can support ext2 through existing 3rd party Windows drivers.
  • My notes dated “Monday, January 26th, 2004″ are as follows:


    ReactOS

    • Does it support WDM?
    • Does it suppport our DVB driver [ed note: Linear Systems' PCI card driver]?
    • Does it support our NDIS driver [ed note: Linear Systems' T1 card driver]?
  • Suggested on debian-win32 that GLibc maintainers wouldn’t support patches for MS Windows as it’s Closed Source. Investigate if they’d support ReactOS.
  • Can Debian be made to boot a ReactOS kernel?
  • Can ReactOS be componentized for Debian?
  • What things need to be done to get Debian to support ReactOS? (triplet?)
  • What are the licences on ReactOS?
  • Can ReactOS support ext2? ext3?

  • Locality of Reference

    Wednesday, May 25th, 2011

    In my studies of Computer Science I learned about the principle of locality which might be better called locality of reference. Two basic kinds of locality are temporal locality (locality in time) and spacial locality (locality in space). The theory basically says that similar things will group together. We see the same principle many places in daily life and other disciplines.

    Some examples of locality include:

    • people speaking the same language tend to group together,
    • wheat fields being on land close together,
    • forests having many of the same species of tree,
    • minerals like gold being in high concentrations in certain areas,

    In data compression, locality is important to reduce context windows to be small enough to fit in memory, to reduce context windows to reduce processing. A context is a kind of locality. A window is a term meaning the area being looked at (or evaluated). Many compression algorithms use a sliding window. A sliding window is a view of several blocks of data that shifts such that when one block is done being evaluated, the window moves one block.

    Why am I talking about locality of reference in data compression? On April 14th, 2004 (2004/04/14), I wrote the following note to myself:


    • duplicate files
    • principle of locality
      • files by time
      • files by directory
      • files by type

    n(n-1)=0(n^2) Every file in front of every other file can be done in parallel.


    This means that for file ordering in an archive, there are some short cuts to finding the optimal order that can take advantage of multi-processor systems. Now checks can also take better advantage of increased parallelism and faster random access provided by solid state disk drives (SSD’s).

    In the above note, O(n^2) is Big O notation for order n squared. That means for every extra unit of input, the processing time roughly takes twice as long. This is a simple exponential curve.

    For further references look up “locality of reference”, “sliding window” compression, “parallel processing”, and “Big O notation”. Also see my evolving nots on data compression including some future information on “Drew Daniels’ compression magic”.

    Drew Daniels

    Adding old paper notes

    Tuesday, May 24th, 2011

    I plan to start adding in my old hand written notes into this blog. I have notes going back more than 13 years. Most of my notes were written during my time at the University of Manitoba.

    I have notes on Data Compression, games, short-wave radio logs, computer errors, my own literary writing, course related reference notes, notes about various organizations I was in, travel observations, business process observations and more.

    I’ve got a small folder of things mostly from 2004 that I may be starting with. I’m still debating what’s worthy for entry. Some notes I may have lost the context for. I must admit that one of the reasons for this effort is reducing the pile of paper I’ve accumulated.

    At one point I was taking notes on my Palm device, but after several minor data loss incidents, and the nuisance of changing batteries I stopped using it. I have some notes there that I may look at putting in this blog too, but since I’ve got a digital copy there’s less urgency.

    Another challenge I have is what to do with the various diagrams and pictures I’ve drawn. Most of it isn’t relevant, and when it is I may put it into a proper web page and re-draw it digitally. I think when I was younger I had a notion that my hand written notes would be treasured like those of the scientists of history, but that was long before the topic of “horders” hit the main stream media. Now my rules for what to keep and what to dispose of is leaning towards getting rid of more.

    I have a small file folder filled with small notes on books I’ve looked up that I’d like to revisit and maybe post reviews about. Without looking I know that I want to re-read some books that quote “How To Solve It”. I particularly liked the following problem:
    If a bear walks south 1km, east 1km, and then north 1km and ends up where it starts, what colour is it?

    Drew Daniels