% % This uses the ``seminar'' document style findable on princeton.edu % % -[Tue Jun 22 02:55:36 1993 by cgd@eden.CS.Berkeley.EDU]- % \documentstyle[11pt,portrait,semrot]{seminar} %\documentstyle[11pt,slidesonly,portrait,semrot]{seminar} \articlemag{1} \rotateheaderstrue \title{The NetBSD Project} \author{Chris Demetriou\\Theo de Raadt} \date{June 23, 1993} \newcommand{\sref}[1]{SLIDE \ref{#1}} \newcommand{\heading}[1]{\begin{center}\large\bf #1\end{center}} \newcommand{\headsubhead}[2]{ \begin{center} {\large\bf #1} \\\smallskip {\small #2} \end{center} } \newpagestyle{SlideHead}{The NetBSD Project, June 23, 1993\hfil\thepage}{} \pagestyle{SlideHead} \pagestyle{plain} \slidepagestyle{SlideHead} \begin{document} \begin{titlepage} % for non-slide title page \maketitle \thispagestyle{empty} \end{titlepage} \begin{slide}\label{title} % the title slide \slidepagestyle{empty} \maketitle \addtocounter{slide}{-1} \end{slide} \begin{slide}\label{whatareyou} % what is netbsd \heading{What is NetBSD?} \begin{itemize} \item Free BSD operating system \item Derived from William Jolitz's 386bsd, which was derived from Berkeley's Net/2 release \item Many enhancements for stability and portability \end{itemize} \end{slide} \begin{slide}\label{goals} % netbsd's goals \heading{NetBSD's Goals} \begin{itemize} \item Provide a free, stable BSD system \item Rational, prioritized improvements \item ``Support'' for popular platforms \item Avoid encumbering licenses \end{itemize} Summary: \begin{center}\parbox{3in}{ Provide a free system that professionals and hobbyists can use for whatever they want. }\end{center} \end{slide} \sref{goals} Also: \begin{itemize} \item avoid political bickering \item allow access to work in progress (don't be a black hole) \item foster ``community'' involvement \end{itemize} Overall: We're in this for fun, but want to benefit others if we can. \begin{slide}\label{platforms} % platforms supported/being ported to \heading{``Supported'' Platforms} Currently only for 386. Ports in progress: \begin{itemize} \item HP 9000/300 \item Amiga (with 68020 and MMU or 68030) \item DECstation 3100 and 5000 \item Macintosh (with 68020 and MMU or 68030) \item Sun-3 \item and more\ldots \end{itemize} \end{slide} \sref{platforms} All ports being done by outsiders, more or less. Port people: \begin{itemize} \item HP 9k/300: a bunch of ``the gang''. Almost compiles. \item Amiga: Markus Wild (mw). He has it working, and hopefully integrated soon. \item DEC 3100 and 5k: David Burren (davidb). He has it working, and hopefully integrated soon. \item Macintosh: ``bunch of people from Vermont'' (contact: Chris Caputo, ccaputo) They apparently have something running, but it's exact state == ??? \item Sun-3: Adam Glass (glass) Just starting. \end{itemize} Other ports: \begin{itemize} \item DEC 3000 (alpha) \item some ns32k machine \item 3b1/7300 \item some embedded systems \end{itemize} \begin{slide}\label{0.8} % the netbsd 0.8 release \headsubhead{The Past}{{\em or} ``NetBSD 0.8''} \begin{itemize} \item Released on April 19 % XXX 1993 \item Equivalent to 386bsd 0.1, plus patches \item Perceived by {\em some} as an ``interim'' release \item Minimum installation: \begin{itemize} \item Requires: 386 processor, 4M RAM, 30M disk \item Installed from: 7 floppy disks \end{itemize} \end{itemize} \end{slide} \sref{0.8} \begin{itemize} \item (release date) seems like a long time ago; hundred+ of pages of diffs \item (386bsd+patches) actually more than that; more stable \item (interim) We're here to stay; not dead-end system. (note ``386bsd'' interim release plans?) \item full installation: 100M+8M recommended for development, more to use X, etc. (30M gzipped) \end{itemize} Consequences of 0.8: \begin{itemize} \item it's very successful; many people in many places are running it, including some universities, etc. \item much positive feedback \item attracted people who did ports to other architectures. \item flood of contributions and interest; too many/much, almost \end{itemize} \begin{slide}\label{current-indep} \heading{Current Platform-Independent Developments} \begin{itemize} \item Replaced and fixed shoddy kernel components \item Brought in ``missing'' software from Net/2 \item Updated user programs to latest versions available \item Made changes to get closer to POSIX \item Added support for loadable kernel modules \item {\em LOTS} of bug fixes and improvements \end{itemize} \end{slide} \sref{current-indep} Kernel components: \begin{itemize} \item physio, exec, etc. \item soon to go: vfs\_bio, ring buffer stuff? \end{itemize} User programs: \begin{itemize} \item didn't update all of them. (e.g. gcc, uucp) \item replaced where possible (test, touch, bc, diff, rcs, etc.) \item newest berkeley code available (DB, sendmail) \item minimize additions of GPL'd software (gzip, gnu regex only new ones) \item fixed many programs (games) \end{itemize} LKMs: ease debugging; Sun-style (done by Terry Lambert) Also: made some general reorganizations: \begin{itemize} \item \verb+/sys/arch+ \item \verb+/usr/src/gnu/*+ \end{itemize} \begin{slide}\label{problems} \heading{Current Problems} \begin{itemize} \item VM system needs work \item Machine-dependence in ``machine-independent'' files \item No NFS locking support \item Lack of proper installation and upgrade tools \item Many smaller problems \end{itemize} \end{slide} \sref{problems} Many people have sent in VM fixes, but there're sure to be problems left in there. Machine dependence: \begin{itemize} \item disklabel (dos partitionining) \item exec cruftiness; geared towards i386 \item other Jolitz hacks \end{itemize} NFS locking is a bear. Volunteers? \begin{slide}\label{current-i386} \heading{Current Developments for the 386} \begin{itemize} \item New interrupt system \item Slightly better autoconfiguration \item More driver support \item {\em LOTS and LOTS} of bug fixes and improvements \end{itemize} Our goal: \begin{center}\parbox{3in}{ Fix bugs in the 386 code before adding new features. }\end{center} \end{slide} \sref{current-i386} New interrupt system from Bruce Evans: now mostly stable. Autoconfig: \begin{itemize} \item better NPX handling \item does ``cpu'' like it's supposed to \item improved diagnostics \item some improved probe routines. \end{itemize} New drivers: \begin{itemize} \item more enet boards \item mouse drivers \item DOS filesystem support \end{itemize} \begin{slide}\label{problems-i386} \heading{Current Problems with 386 support} \begin{itemize} \item Autoconfiguration needs a lot of work \item Kernels should be loadable anywhere in RAM \item Little support for bounce buffers for machines with more than 16M of RAM \item Support for floppy disks and ``WD''--type hard disks needs improvement \item PC video board driver needs work \end{itemize} \end{slide} \sref{problems-i386} The more we learn about the 386, the less we want to know\ldots Would like to get the new LBL config code to redo autoconfig stuff. Desperately need to clean up and clean out locore, especially pmap bootstrapping. ISA (and EISA) device code needs cleanup. Some of the drivers need to be tossed and rewritten. Some have been rewritten or fixed: \begin{itemize} \item floppy driver (Julian Elischer) \item wd/3c503 enet driver (David Greenman) \item 386BSD scsi subsystem (Julian Elischer) \end{itemize} It would be nice to see ``generic'' i386 support, divorced from the ISA bus. Eventual support for more busses, if possible: \begin{itemize} \item real EISA support \item MCA support \item perhaps 386 MP boxes. Sequent? \end{itemize} \begin{slide}\label{future} \heading{Future work on NetBSD} \begin{itemize} \item Shared Libraries \item POSIX conformance \item 4.4BSD integration (if possible) \item Better SCSI and autoconfiguration support \item Diskless booting support \item Remote debugging support \end{itemize} \end{slide} \sref{future} There's a group working dynamically loaded shared libararies; support for statically loaded ones comes for free with new exec. When and if 4.4BSD comes out, we'd like to integrate the {\em best} features-- not necessarily start with it as a new code base. SCSI and autoconfig code from LBL would be nice, however both would require an awful lot of work. diskless booting in the works for 386; bootp/tftp. (have code, will integrate.) remote debugging also in the works via serial line and enet, with latest gdb. (have code, will integrate.) merge w/interim? \begin{slide}\label{support} \heading{Who does the work?} A ``cast of thousands'' of contributors including: \begin{itemize} \item CSRG, for Net/2 and for ``BSD'' in general \item The ``Random Hackers'' in the core team \item William and Lynne Jolitz, for our 386bsd code base \item The organizers of the 386bsd patch kit \item Users who have sent in bug reports and fixes \end{itemize} \end{slide} \sref{support} ALL VOLUNTEER. Not enough hours in the day. Have need for good release engineer; that in itself could be a full time job. \begin{slide}\label{contact} \heading{For your reference:} How to get NetBSD via anonymous FTP: \begin{center}\parbox{3.5in}{ \verb+sun-lamp.cs.berkeley.edu [128.32.240.166]+ \verb+pub/NetBSD+ }\end{center} And if you have questions or comments: \begin{itemize} \item \verb+netbsd-comments@sun-lamp.cs.berkeley.edu+ \item Come talk to us privately \item Ask questions now! \end{itemize} \end{slide} \sref{contact} Also: \begin{itemize} \item NetBSD-current: updated nightly \item SUP of current sources possible; \verb+sun-lamp:pub/sup+ for details \item other mailing lists: \begin{itemize} \item \verb+netbsd-ports+ \item \verb+netbsd-current-users+ \item etc. \end{itemize} \end{itemize} \end{document}