Slide 1: DESIGN PRINCIPLES LINUX SYSTEM Slide 2: The Linux System: Design Principles Its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model.
Main design goals are speed, efficiency, flexibility and standardization.
Linux is designed to be compliant with the relevant POSIX documents; some Linux distributions have achieved official POSIX certification.
Linux is a Multiuser Multitasking system with a full set of UNIX-compatible tools. Slide 3: The layers of a UNIX system Slide 4: Components of a UNIX System Like most UNIX implementations, Linux is composed of three main bodies of code:
Standard Utilities Programs
Kernel Slide 5: The shell of a UNIX System The UNIX systems have a Graphical User Interface (Linux uses KDE, GNOME …), but the programmers prefer to type the commands.
Shell: the user process which executes programs (command interpreter)
Shell reads command (read from input) and translates it to the operating system.
User types command Slide 6: The shell of a UNIX System Can run external programs (e.g. netscape) or internal shell commands (e.g. cd)
Various different shells available:
Bourne shell (sh), C shell (csh), Korn shell (ksh), TC shell (tcsh), Bourne Again shell (bash).
The administrator of the system provides to the user a default shell, but the user can change shell. Slide 7: The shell of a UNIX System Example of commands
$ cd /usr/src/linux
$ more COPYING
$ cp file1 file2
$ head –20 file
$ head 20 file
$ ls *.c
$ ls [abc]*
$ sort < file1 > file2 Slide 8: The shell of a UNIX System String multiple commands together in a shell script
$ sort < file | head –30
$ grep $ sort < file1 > file2; head –30 < file2 ; rm temp. Slide 9: The shell is more ... The shell is programmable, that is it possible to make the shell scripts
A shell script is a file containing a sequence of commands addressed to the operating system that facilitates the repeated execution of the included commands without their having to be laboriously retyped each time they are executed. Slide 10: The shell is more ... If there is a distinct ordered list of operating system commands that the user needs to execute repeatedly, for example, immediately after every login or immediately before every logout, then most operating systems have a facility for recording the list of commands in a file, which can then either be executed automatically upon login or logout, or can be invoked by the user through the issuance of a single command that results in the execution of the entire contents of the batch file, which can contain as few as one operating system command or as many as thousands. Slide 11: UNIX Utility Programs Slide 12: The Standard Library A system call is the method that the user process uses to ask for an action from the O.S.
The programs perform the system calls by mean of trap.
changes from user mode to kernel mode
returns to user mode
execution done on behalf of the operating system
controls the correctness of the call parameters Slide 13: The Kernel The kernel is responsible for maintaining the important abstractions of the operating system.
It provides the main functions of the abstract machine (system calls and Interrupt and traps).
Linux kernel can load modules dynamically . Slide 14: File System / is the root directory; reference point for all directories. Every file has a unambiguous pathname:
/home/user1/papers Slide 15: Some directories found in UNIX systems /bin Binaries which are absolutely essential to run Linux.
/boot All the files required for booting Linux on a system.
/dev All the devices have their corresponding files here.
/etc All the configuration files for the various software are stored here. Don't play with this directory.
/home All users will have their 'My Documents' under this directory. If your id is rossi, your 'My Documents' (called home-directory) is /home/rossi.
/lib The libraries required by system-applications. (Just like DLLs in Windows.)