In reality it can consist of just about any thing in the base system and the source tree.
In actuality, from the side that we see of it is
csup -- fetch source
make -- automate building source
mergemaster -- help us merge config files
Generally updating the system the 'freebsd way' looks some thing like this:
... # make sure things are set to get the right source code
csup /the/supfile # older versions used 'cvsup' which was not in the base system; usage is the same.
... # nice coffee break while it downloads new files
$PAGER /usr/src/UPDATING # read updating notes
make buildworld # build new userland
make buildkernel # build new kernel
make installkernel # install kernel
... # boot into SINGLE USER mode
make installworld # install new userland
mergemaster -viU # interactively merge config files: read the manual for option specs,
# I always use -v because I rarely use mergemaster
... # let's the system start clean
before starting it's generally a good idea to make a back up the files in /etc before starting just in case you screw up some thing in the mergemaster phase (I usually create a .tar or. zip file of /etc just in case).
After the builds done you can delete all the files within /usr/obj - which stores files created during the build process.
There's a new freebsd-update program that can do more of this stuff manually I think but I'm not sure if the one in FreeBSD 6.3-Release (which PC-BSD 1.5.x is based on) is able to update the system to 7.0-Release.
A version of PC-BSD based on FreeBSD 7 is in Alpha testing now, alpha meaning highly expiremental phase looking for bugs involved before making it easy for people to update PC-BSD ;-)
I've also manually taken a PC-BSD machine to FreeBSD 7.0-Release before, it's not hard but can be time consuming. One of these days I'm going to try taking a FreeBSD 7 isntall to a Pc-BSD one manually, it'll be interesting.