Thread

  1. Re: Porting to Native WindowsNT/2000

    Henshall, Stuart - WCP <shenshall@westcountrypublications.co.uk> — 2001-09-03T09:03:55Z

    > "Dwayne Miller" <dmiller@espgroup.net> writes:
    > 
    > > Well,  for one.... I have no idea what cygwin is, or what it does to
    > > your system, or what security vulnerabilities it might add to your
    > > system.  It comes with alot of stuff that I may or may not need,  but
    > > what components I need to run Postgres is not clear.
    > 
    > Cygwin is a Unix environment for Windows.  For information, see
    >     http://cygwin.com/
    > 
    > Cygwin comes with a lot of stuff which you don't need to run Postgres.
    > Simply having that stuff on your computer will not introduce any
    > security vulnerabilities if you don't run the programs.  Cygwin is
    > simply a DLL and a bunch of Unix programs.  It has no server
    > component.
    > 
    > In order to build Postgres, you will need the compiler and associated
    > tools.  In order to run all the Postgres commands, you will need the
    > shell and several of the tools.
    > 
    > In fact, I believe that a cygwin distribution actually comes with
    > Postgres prebuilt and ready to run.
    > 
    > (To be honest, the idea of worrying about security vulnerabilities on
    > Windows seems odd to me.  If you are honestly worried about security
    > on your database server, the first step is to stop running Windows.)
    > 
    > > Two.... could Postgres be made more efficient on Windows if it ran
    > > without cygwin?
    > 
    > Yes.  Cygwin adds measurable overhead to all I/O operations, and
    > obviously a database does a lot of I/O.  Postgres employs operations
    > which are fast on Unix but are very slow on cygwin, such as fork.
    > 
    > As mlw said, porting Postgres to run natively on Windows would be a
    > significant effort.  The forking mechanism it uses currently would
    > have to be completely rearchitected.  The buffer, file manager, and
    > networking code would have to be rewritten.  Off the top of my head,
    > for a top programmer who is an expert in Unix, Windows, and Postgres,
    > it might take a year.  There would also be a heavy ongoing maintenance
    > cost to keep up with new Postgres releases.
    > 
    > > Three.... can you start cygwin programs on startup of the system?
    > 
    > Sure.  cygwin programs are just Windows programs which use a
    > particular DLL.
    > 
    > Ian
    > 
    Cygrunsrv allows postgresql to be run as a service. There's a slight hiccup
    on shutdown meaning that the postmaster.pid file gets left. This is due to
    sighup being sent by windows shutdown. I think current cygwin snapshots
    might cure this, otherwise there is a patch some where that causes SIGHUP to
    be ignored. I *think* the pre-built binary already has this patch applied.
    
    - Stuart