OS Services
OS Services
Outline
▪ File management - Create, delete, copy, rename, print, dump, list, and generally
manipulate files and directories
▪ Status information
• Some ask the system for info - date, time, amount of available memory, disk
space, number of users
• Others provide detailed performance, logging, and debugging information
• Typically, these programs format and print the output to the terminal or other
output devices
• Some systems implement a registry - used to store and retrieve configuration
information
System Services (Cont.)
▪ File modification
• Text editors to create and modify files
• Special commands to search contents of files or perform transformations of the
text
▪ Programming-language support - Compilers, assemblers, debuggers and
interpreters sometimes provided
▪ Program loading and execution- Absolute loaders, relocatable loaders, linkage
editors, and overlay-loaders, debugging systems for higher-level and machine
language
▪ Communications - Provide the mechanism for creating virtual connections among
processes, users, and computer systems
• Allow users to send messages to one another’s screens, browse web pages,
send electronic-mail messages, log in remotely, transfer files from one machine to
another
System Services (Cont.)
▪ Background Services
• Launch at boot time
Some for system startup, then terminate
Some from system boot to shutdown
• Provide facilities like disk checking, process scheduling, error logging, printing
• Run in user context not kernel context
• Known as services, subsystems, daemons
▪ Application programs
• Don’t pertain to system
• Run by users
• Not typically considered part of OS
• Launched by command line, mouse click, finger poke
Linkers and Loaders
▪ Source code compiled into object files designed to be loaded into any physical
memory location – relocatable object file
▪ Linker combines these into single binary executable file
• Also brings in libraries
▪ Program resides on secondary storage as binary executable
▪ Must be brought into memory by loader to be executed
• Relocation assigns final addresses to program parts and adjusts code and data
in program to match those addresses
▪ Modern general-purpose systems don’t link libraries into executables
• Rather, dynamically linked libraries (in Windows, DLLs) are loaded as needed,
shared by all that use the same version of that same library (loaded once)
▪ Object, executable files have standard formats, so operating system knows how to
load and start them
The Role of the Linker and Loader
Why Applications are Operating System Specific
▪ Apps compiled on one system usually not executable on other operating systems
▪ Each operating system provides its own unique system calls
• Own file formats, etc.
▪ Apps can be multi-operating system
• Written in interpreted language like Python, Ruby, and interpreter available on
multiple operating systems
• App written in language that includes a VM containing the running app (like Java)
• Use standard language (like C), compile separately on each operating system to
run on each
▪ Application Binary Interface (ABI) is architecture equivalent of API, defines how
different components of binary code can interface for a given operating system on a
given architecture, CPU, etc.
Design and Implementation