gabriel rosenkoetter on Fri, 19 Apr 2002 07:40:12 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] Some notes from my talk tonight.


First off, the handy Unix timeline (which is, incidentally, the
first Google hit for "Unix timeline" ;^>) comes from:

  http://perso.wanadoo.fr/levenez/unix/history.html

A BSD-centric section (actually recorded by BSD folks with a lot of
references attached) can be found at:

  http://cvsweb.netbsd.org/bsdweb.cgi/sharesrc/share/misc/bsd-family-tree

(This is part of the FreeBSD and OpenBSD distributions too, but I
know where it loves on our cvsweb.)

If you want to read about NetBSD, this isn't a bad place to start:

  http://www.netbsd.org/Documentation/

I'm attaching the notes I read from tonight, but I've got a feeling
they won't be helpful for anyone who's now me to reference
explicitly. But maybe it'll jog someone's mind for a question.

Along those lines, if you wanted to ask me about something but
forgot, want a written answer to something I answered verbally at
the meeting, think of something to ask later, or weren't there at
all but want to ask me something about NetBSD, feel free to do so
via private email and I'll summarize the (questions and) answers in
a few days to the list.

One thing I see in my notes that I totally forgot to mention after I
started skipping around is the shiny, new build.sh script in the
NetBSD-current source. It bootstraps all of the build tools (gcc,
make, config--for kernel stuff, yacc, zic, lint, install, cap_mkdb,
lex... so forth) at compile time. This means that you can safely
cross build from any NetBSD architecture to any other. There are a
few hang-ups with the cross tools (like, you can't so much make a
macppc boot floppy image on an i386 machine right now, though you'll
be able to after Luke Mewborn finishes his mkfs--not to make file
systems on a partition, but to make them in a file--utility), but
they work pretty well. It should already be possible to build NetBSD
entirely in certain other POSIX-compliant environments (Solaris,
Windows with the same stuff you need for VxWorks builds). This may
sound kind of irrelevant, but it's really imporatant for companies
developing embedded systems. (Just because they're putting NetBSD in
the appliance doesn't mean they want to run it locally, nor should
they have to.)

Note that pkgsrc is NOT cross-capable, mostly because a vast
proportion of it would have to be hacked *really* hard to make that
happen. It's one thing for source to be portable, it's quite another
for it to be cross-capable (which means it needs to be capable of
being built with a target other than the local processor; many
Makefiles aren't outfitted for that, and changing them so they are
with NetBSD-specific patches would be a lot of pain.) And this is
not even to mention the arch-specific packages.

-- 
gabriel rosenkoetter
gr@eclipsed.net
- do interrupt or this will be really short!

- Unix history
  http://perso.wanadoo.fr/levenez/unix/history.html
  http://cvsweb.netbsd.org/bsdweb.cgi/sharesrc/share/misc/bsd-family-tree
  http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/sharesrc/share/misc/bsd-family-tree?rev=&content-type=text/plain
  - BSD/SysV split
  - FreeBSD, NetBSD, OpenBSD split out
  - commercial BSDs (BSD/OS, Mac OS X)
- NetBSD use
  - included in the default install
    - ssh
      - Solaris still doesn't, though they do finally have a /dev/random
        (Solaris 8 patch 112438-01)
      - right now OpenSSH; may change over to FreSSH (OpenSSH code
        is a mess)
    - all daemons linked against libwrap (Debian does this too)
    - rc structure
      - /etc/inetd.conf all comments by default
      - /etc/rc.conf, /etc/defaults/rc.conf
        - must at least set rc_configured to boot, most daemons
          you'd use these days live here
        - launches scripts from /etc/rc.d using rcorder
          - rcorder directives
            - REQUIRE
            - PROVIDE
            - BEFORE
            - KEYWORD
            - rcorder(8) used to sort scripts based on these on boot
              (reverse on shutdown)
    - /etc/mailer.conf
      - both Sendmail and Postfix installed by default, use
        mailer.conf to switch between them
        - vaguely phasing Sendmail out, but don't say that too
          loudly
      - /usr/sbin/sendmail, /usr/bin/mailq, etcetera just wrappers
        that consult this config file
  - pkgsrc
    - builds from vendor's source plus NetBSD patches
    - configurable by way of /etc/mk.conf
      - destination dir, acceptable licenses
    - make update works (including dependencies)
      - no worries about broken dependencies; you're rebuilding
        everything locally (provided DEPENDS are set right, of
        course)
    - you *can* get binary packages, but it's only really worth it
      on slowest architectures because it's easier to stay up to
      date on your own
  - building NetBSD from source
    - checkout from the CVS repository
      - HEAD is NetBSD-current
      - netbsd-1-5 is the current release (netbsd-1-6 will probably
        exist this summer)
    - minimally:
      # cd /usr/src && ./build.sh -D /build -R /release
    - build.sh rocks
      - bootstraps all the build tools on the local machine...
      - ... potentially for cross-compiling
        - (some cross problems; like making macppc boot floppies
          on i386, but the actual system gets built right)
        - that includes building NetBSD on non-NetBSD (and on
          non-Unix) platforms (to compete with VxWorks)
  - Linux emulation
    - emulate Linux syscalls
      - have to track kernel changes (currently in the 2.4.high
        range)
    - set of packages in pkgsrc for libraries
      - track SuSE (currently at 7.3)
    - man pkgsrc items use (and seamlessly install) Linux emulation
      - Netscape (though BSD/OS binaries worked last time I tried)
      - Opera
      - 
  - kernel details
    - UVM
      - could talk for days...
    - threads (or lack thereof)
      - a branch (to be combined into current after 1.6 splits
        this summer) has system activations & LWPs ala Solaris
      - various pkgsrc threading libraries to satisfy various
        packages wants
        - ... but still nothing that does preemptive mutli-
          threading right. (nathan_sa will)
    - SMP (or lack thereof)
      - also in work on a branch
      - still in the Big Lock state of affairs (meaning it's not
        actually good for much)
      - NetBSD's not really aimed (in its current state) at
        high-end servers; the money for people who know NetBSD and
        get paid to maintain it is embedded system, so no huge
        surprise
    - LKM
      - less used than under Linux, more for kern devel purposes
      - ... so the API is a bit uglier, and the kernel doesn't
        play quite as nicely (doesn't put as many things in tables
        to be overwritten)
    - code is VERY clean and well-commented
      - OS classes and such
- NetBSD devel
  - mailing lists
  - Wasabi
- questions?

Attachment: pgpX1kmdliy9e.pgp
Description: PGP signature