720 - Introduction to SCO UnixWare 2.1 Internals
Table of Contents
Course Overview
Introduction to SCO UnixWare 2.1 Internals is designed for
- System administors, programmers, and support engineers who desire to
gain a better understanding kernel functions
- Kernel engineers and people porting UnixWare to new hardware platforms.
In this course, students learn the kernel's architecture, what the kernel's
tasks are, and the algorithms and data structures the kernel uses to perform
its tasks.
Introduction to SCO UnixWare 2.1 Internals is taught with task-oriented
lectures and hands-on labs. It is an high-level course that provides pre-requisite
skill training for the Writing Device Drivers and Advanced Internals courses.
Course Objectives
- Diagram the UnixWare architecture and explain the functionality of
the major components of the kernel
- Define key terms used in discussing internals
- Describe basic features of the Intel 386 through Pentium II hardware
as it relates to internals
- Describe the various ways in which the system is switched betwen user
and kernel mode, including:
- Traps
- Exceptions
- Interrupts
- Describe the various synchronization methods used by the kernel to
protect key resources in single and multi-processor systems
- Describe the UnixWare 2.1 process and light-weight process architecture
and how context-switching happens
- Describe how light-weight processes are scheduled
- Describe the UnixWare 2.1 virtual memory architecture on Intel processors
- Describe the Virtual File System interface used and list the filesystems
supported by UnixWare 2.1 and list their unique characteristics
Prerequisites
Students should have at least 6 months of experience programming in
C using system calls.
Course Series
This course is often taken as part of the following course sequence:
720 - Introduction
to SCO UnixWare 2.1 Internals
730 - Writing
Device Drivers
740 - Advanced
SCO UnixWare 2.1 Internals
Course Topics
Overview of SCO UnixWare 2.1 Kernel
- Architecture and tasks of the kernel
- Process management
- Memory management
- File I/O management
- Fundamental terms and concepts
Intel x86 hardware basics
- Descriptors & descriptor tables
- Call gates
- Traps/Exceptions/Faults
Kernel and User Modes
- System calls
- Traps/Exceptions/Faults
- Signals
- Synchronization
Process Managment
- Process-related system calls
- Description of a process
- Attributes
- Data structures
- The /proc filesystem
- Introduction of LWPs
- LWPs
- Comparing and contrasting with processes and LWP-related system calls
- Attributes
- Data structures
- Introduction to scheduling queues
- Context switching
- Algorithms for key system calls:
- fork()
- exec()
- wait()
- exit()
Process scheduling
- Basic concepts
- Scheduling classes and their properties
- Scheduling-related system calls
- Determining when to context-switch
Memory Management
- Basic concepts of virtual memory
- Memory-related system calls
- The UnixWare 2.1 virtual memory architecture:
- Address spaces
- Segments and drivers
- Pages
- The HAT layer and address translations
- Intel hardware paging
- Paging and swaping scenarios and algorythms:
- Memory usage parameters
- The page-out daemon
- Faults and page-ins
- Kernel memory allocation
- TLB issues
Filesystems
- File I/O system calls
- The Virtual File System (VFS)
- The Virtual Inode (Vnode)
- Disk-based Filesystem implementations and attributes:
- bfs
- cdfs
- dosfs
- s5fs
- ufs and sfs
- vxfs
- Special Filesystem implementations and attributes:
- fifofs
- specfs
- namefs
- procfs
- profs
- Swap-backed filesystems
(Appendix on building kernels from distribution and source)