About linux scheduler

+ preemptive multitasking
+ dynamic priority-based scheduling
+ The Linux kernel implements two separate priority ranges.
Nice value
Real-time priority
+ Processes with a higher priority also receive a longer timeslice.
+ Linux, to provide good interactive response, optimizes for process response
(low latency), thus favoring I/O-bound processes over processor-bound
processors. This is done in a way that does not neglect
processor-bound processes.

Commands to display system information

ulimit
------------------
Provides control over the resources available
to the shell and to processes started by it
(setting size of core file)

ipcs
------------------
report XSI interprocess communication facilities status

free
------------------
[sandesh@sandeshks ~]$ free
total used free shared buffers cached
Mem: 1026828 547940 478888 0 36128 212776
-/+ buffers/cache: 299036 727792
Swap: 2031608 189572 1842036


top
------------------

vmstat
------------------
Report virtual memory statistics


lspci
lspci -vv : very verbose
------------------
Utility for displaying information about all PCI buses in the system and all devices connected to them.


lsdev - display information about installed hardware
------------------
lsdev gathers information about your computer's installed hardware from the
interrupts, ioports and dma files in the /proc directory, thus giving you a quick
overview of which hardware uses what I/O addresses and what IRQ and
DMA channels.


lsusb - list USB devices
------------------
lsusb is a utility for displaying information about USB buses in the system and the
devices connected to them.

For information on GNU core utilities type
info coreutils

Commands to trace a process

strace - Traces system calls and signals
strace -c - Counts time, calls, and errors for each syscall and report summary

Binary utilities

Execute 'info binutils' on Linux command prompt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* ar:: Create, modify, and extract from archives
* nm:: List symbols from object files
* objcopy:: Copy and translate object files
* objdump:: Display information from object files
* ranlib:: Generate index to archive contents
* readelf:: Display the contents of ELF format files.
* size:: List section sizes and total size
* strings:: List printable strings from files
* strip:: Discard symbols
* c++filt:: Filter to demangle encoded C++ symbols
* cxxfilt: c++filt. MS-DOS name for c++filt
* addr2line:: Convert addresses to file and line
* nlmconv:: Converts object code into an NLM
* windres:: Manipulate Windows resources
* dlltool:: Create files needed to build and use DLLs

Linux Networking

eth-tool
nii-tool
netstat
nstat

nslookup
dig
ifport
ifconfig
route
arp
tcpdump

ping
pathping
traceroute

rpm

rpm -qpl kernel-2.4.20-18.10.1.i686.rpm
rpm -qpl ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0-1.i386.rpm

List files in RPM file. This command allows you to query a
(possibly) uninstalled RPM file with the use of the the "-p" option.

rpm -qa | grep an installed rpm can be searched

rpm -qa gives the name of the rpm package the file is part of

Linux Image tools/applications

Sketch
Gimp

Other Image tools/applications
---------------------------------
Photoshop
Illustrator
Freehand
Corel Draw

OS and Computer Architecuture Books


Home page of the book: Operating System Concepts - 7th edition





















Advanced Computer Architecture: Parallelism,Scalability,Programmability
By Kai Hwang

Home page of Professor Kai Hwang

Linux/Unix Books and Links


The Design of the Unix Operating System - Maurice J. Bach
















UNIX Internals - Uresh Vahalia

















The Magic Garden Explained: The Internals of Unix System V Release 4 : An Open Systems Design
by Berny Goodheart (Author), James Cox (Author)















Online Free Book :--
Secure Programming for Linux and Unix HOWTO -- Creating Secure Software
By David A. Wheeler




OS Concepts/Terms

Multiprogramming - One user cannot keep CPU busy. Operating system organizes jobs such that the CPU always has one job to execute. This is called multiprogramming.

Multitasking - Logical extension of multiprogramming. Multiple jobs are executed by the CPU switching between them, but the switches occur so frequently that the usets may interact with each program while it is running.

Time-sharing (or Multi user) - Multiple users

Multiprocessing - Multiple processors

Job scheduling: If several jobs are ready to be brought into memory, and there is not enough room for all of them, then the system must choose among them.

CPU Scheduling: Choose a job to give CPU to, among all the ready to run jobs.

Mutiprocesor system (Tightly coupled system): More than one processors in close communication, sharing the computer bus, the clock, and sometimes memory and peripheral devices.

Symmetric-multiprocessing: Each processor runs an identical copy of the operating system.
Asymmetric multiprocessing: Master slave relationship. The master processor schedules and allocates work to the slave processor.


Distributed system (Loosely-coupled system): Processors do not share memory or clock. Processors communicate with one another through various communication lines, such a high speed buses or telephone lines.


Hard real time system:

Soft real time system:



NUMA - Non Uniform Memory Access
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The NUMA concept comes into play when any CPU of a multiprocessor
system gets its own memory area that the processor can access
faster than the memory of any other processor. The operating
system should therefore minimise the number of accesses of the
processor to the wrong memory.