Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jul 2001 00:20:58 -0400 (EDT)
From:      Jim Durham <durham@w2xo.pgh.pa.us>
To:        Erik Trulsson <ertr1013@student.uu.se>
Cc:        Mark Rowlands <mark.rowlands@minmail.net>, matt <matt@bluemoon.27south.com>, <freebsd-questions@FreeBSD.ORG>
Subject:   Re: Security Issues And Iso Images
Message-ID:  <Pine.BSF.4.33.0107230017550.2936-100000@jimslaptop.int>
In-Reply-To: <20010723034216.A36349@student.uu.se>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 23 Jul 2001, Erik Trulsson wrote:

> On Sun, Jul 22, 2001 at 09:04:50PM -0400, Jim Durham wrote:
> >
> >
> > On Mon, 23 Jul 2001, Erik Trulsson wrote:
> >
> > > On Sun, Jul 22, 2001 at 08:04:27PM -0400, Jim Durham wrote:
> > > > On Sun, 22 Jul 2001, Mark Rowlands wrote:
> > > >
> > > > > 9) cd /usr/src
> > > > >
> > > > > make buildworld && make buildkernel KERNCONF=YOURKERNEL \
> > > >
> > > > I don't want to confuse the issue... but I have "an issue" 8-) . Aren't
> > > > you building your kernel against old libs? IMHO you want to do your
> > > > buildworld, then drop to single-user (you can't install a running binary),
> > > > do your installworld, then buildkernel, then installkernel, so that your
> > > > new kernel is built against the newly installed libraries.
> > >
> > > Nope, make buildkernel will use the libraries in /usr/obj that were
> > > built by the previous buildworld.
> > > builworld, buildkernel, installkernel, installworld  is the correct
> > > sequence.
> >
> > > You might want to drop into single user mode before the installworld
> > > but as long as the system is quiet that isn't necessary.
> > >
> >
> > Maybe I'm out of date, but how do you replace a running binary that
> > is mapped into address space while it's running? The only way to do
> > it, as far as I know, is to rename it and then create a new binary
> > which will run after a reboot, leaving the old file there with another
> > name. Does the script do all this, or have the rules changed?
>
> (Note that dropping into single user mode would not change anything
> about this.)
>
> Replacing the binary of running program is no problem.  You just
> overwrite the old file with the new one.  The system automatically
> keeps track of the parts of the old binaries that it needs.
> This is similar to how you can delete a file that another program hold
> open.  The other program can still read and write to the file even
> though it no longer appears in a directory listing.  The space for the
> file won't be reclaimed until no program is using it any more.
> I don't know for how long this has been true but several years at least
> I believe. Quite possibly forever.
>
Not forever. I know this has come up from time to time when I've tried
to delete the file entry of a running process. I'm quite sure 4.3 BSD
was this way. Maybe since 4.4?


> (Although I have run into problems on a Solaris system with NFS-mounted
> directories a couple of years ago where removing the binary of a
> running program caused a program crash fairly quickly.  That system has
> since been upgraded and the problem disappeared.)
>
> >
> > Also, in my reading somewhere, and I can't find it now of course,
> > it was mentioned that you had to specifically ask for the /obj libs
> > to be used, and the person didn't feel this worked well for some
> > reason I also forget (I forget a lot lately)
>
> This might be from before the new buildkernel target was introduced.
> Back then the installed files were used and not the ones in /usr/obj.
>
> Note also that for quite some time you could not even do a 'make
> buildkernel' without first having done a 'make buildworld'. This was
> because the buildkernel target tried to use the files built by a
> buildworld and failed if they weren't found. I believe this has since
> been fixed.
>
>
> >
> > If you can amplify on the whys of all this, I'm sure there are others
> > who would be very interested.
> >
> > Thanks,
> >
> > Jim
>
>
> If in doubt please see /usr/src/UPDATING which describes the official
> way of upgrading which is:
>
>         To update from 4.0-RELEASE or later to the most current
>         4.x-STABLE
>         ----------
>         make buildworld
>         make buildkernel KERNCONF=YOUR_KERNEL_HERE
>         make installkernel KERNCONF=YOUR_KERNEL_HERE
>         reboot  (in single user) [1]
>         make installworld
>         mergemaster
>         reboot
>
> (The reboot before installworld can usually be skipped on quiet systems.)
>

Thanks, Eric.

-Jim



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.33.0107230017550.2936-100000>