|
protection: The Purpose of Our PC UtilitiesWhy we wrote PC utilities to port UNIX with - the advantage of working from a primitive OS that runs on the absolute machine. Porting Unix to the 386: Designing the Software SpecificationThis, 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. One surprise with 386BSD was that the 80386 doesn't honor write protection on the user page addresses, requiring a work-around. This was fixed in 80486 and all subsequent X86 processors. Page Fault and Segmentation Fault MechanismCatching potentially restartable 386 processor faults with 386BSD. Extending the Standalone SystemBooting a kernel didn't require all of this - but by extending support, we had a "mini kernel" like functionality. Dillemma - how much do you let the boostrap/loader actually do? We chose after the kernel was up to have it to the most - but this answer is subject to review. Processor Support -- i386.cWe initialized the processor with initial descriptor and page tables - one needs to run with the tables before activating memory/interrupt kernel functions. Page Fault HandlingWe coded trap handlers and simulated read and write faults to test out page faults with our processor support code. On a 2MB machine, we knew we'd get 1,000's. |