/joh'liks/ n.,adj. 386BSD

Porting Unix to the 386: A Practical Approach



William & Lynne Jolitz


This, the first article, is the first published mention of 386BSD. By this time, the project had been operational for 18 months, and William Jolitz was at Berkeley working on the Net/2 release.
In this installment, we discussed the beginning of our project and the initial framework that guided our efforts, in particular, the development of the 386BSD specification.





Links:
What was it like launching the "porting" series
Jolitz Heritage - Designing a Software Specification
386BSD - Designing a Software Specification
Porting Unix to the 386: Designing the Software Specification

Getting to the hardware

William Frederick Jolitz and Lynne Greer Jolitz

Original article - Copyright (c) 1990 TeleMuse.
The University of California's Berkeley Software Distribution (BSD) has been the catalyst for much of the innovative work done with the UNIX operating system in both the research and commercial sectors. Encompassing over 150 Mbytes (and growing) of cutting-edge operating systems, networking, and applications software, BSD is a fully functional and nonproprietary complete operating systems software distribution (see Figure 1).
V6
V732V
PWB/
UTS 1.0
2.8BSD3BSD
4.0BSD
System 32.9BSD4.1BSD
Eighth
Edition
System 5.14.2BSD
System 5.22.10BSDMACH
Nineth
Edition
4.3BSD
System 5.3
OSF/1
System 5.44.4BSD
AT&TBell LabsUC BerkeleyBellUC BerkeleyCMU
Figure 1 - The UNIX Family Tree

In fact, every version of UNIX available from every vendor contains at least some Berkeley UNIX code, particularly in the areas of filesystems and networking technologies. However, unless one could pay the high cost of site licenses and equipment, access to this software was simply not within the means of most individual programmers and smaller research groups.

The University of California's Berkeley Software Distribution (BSD) has been the catalyst for much of the innovative work done with the UNIX operating system in both the research and commercial sectors. Encompassing over 150 Mbytes (and growing) of cutting-edge operating systems, networking, and applications software, BSD is a fully functional and nonproprietary complete operating systems software distribution (see Figure 1).

The 386BSD project was established in the summer of 1989 for the specific purpose of porting BSD to the Intel 80386 microprocessor platform so that the tools this software offers can be made available to any programmer or research group with a 386 PC. In coordination with the Computer Systems Research Group (CSRG) at the University of California at Berkeley, we successively ported a basic research system to a common AT class machine (see Figure 2), with the result that approximately 65 percent of all 32-bit systems could immediately make use of this new definition of UNIX. We have been refining and improving this base port ever since.

By providing the base 386BSD port to CSRG, our hope is to foster new interest in Berkeley UNIX technology and to speed its acceptance and use worldwide. We hope to see those interested in this technology build on it in both commercial and noncommercial ventures.

In this and following articles, we will examine the key aspects of software, strategy, and experience that encompassed a project of this magnitude. We intend to explore the process of the 386BSD port, while learning to effectively exploit features of the 386 architecture for use with an advanced operating system. We also intend to outline some of the tradeoffs in implementation goals which must be periodically reexamined. Finally, we will highlight extensions which remain for future work, perhaps to be done by some of you reading this article today. Note that we are assuming familiarity with UNIX, its concepts and structures, and the basic functions of the 386, so we will not present exhaustive coverage of these areas.

4.3BSD
4.3BSD Tahoe
386BSD
4.3BSD Reno
Net/2
4.4BSD
Figure 2 - How 386BSD Relates to Other BSD Releases
In this installment, we discuss the beginning of our project and the initial framework that guided our efforts, in particular, the development of the 386BSD specification. Future articles will address specific topics of interest and actual nonproprietary code fragments used in 386BSD. Among the future areas to be covered are:
  • MS-DOS utilities for beginning to port 386BSD
  • 386BSD process context switching
  • Executing the first 386BSD process on the PC
  • 386BSD kernel interrupt and exception handling
  • 386BSD INTERNET networking
  • ISA device drivers and system support



Porting Unix to the 386: Designing the Software Specification



INDEX NEXT >>



Copyright 1989, 1990, 2006 TeleMuse Partners, William Jolitz and Lynne Jolitz