Sunday, August 21, 2011

Kernal

The kernel is the essential center of a computer operating system, the core that provides basic services for all other parts of the operating system.As a basic component of an operating system, a kernel provides the lowest-level abstraction layer for the resources.

The kernel's primary purpose is to manage the computer's resources and allow other programs to run and use the resources like the CPU, memory and the I/O devices in the computer.

The facilities provides by the kernel are :

  • Memory management
    The kernel has full access to the system's memory and must allow processes to access safely this memory as they require it.
  • Device management
    To perform useful functions, processes need access to the peripherals connected to the computer, which are controlled by the kernel through device drivers
  • System calls
    To actually perform useful work, a process must be able to access the services provided by the kernel.

Types of Kernel:

  • Monolithic kernels
    Every part which is to be accessed by most programs which cannot be put in a library is in the kernel space:
    Device drivers
    Scheduler
    Memory handling
    File systems
    Network stacks
  • Microkernls
    In Microkernels, parts which really require to be in a privileged mode are in kernel space:
    -Inter-Process Communication,
    -Basic scheduling
    -Basic memory handling
    -Basic I/O primitives

Different types of memory

The memory types are:

SIMM - Single-Line Memory Modules: Used to store single row of chips which are soldered onto Printed Circuit Board.

DIMM – Dual-Line Memory Modules: Used to store two rows of chips which are soldered onto printed circuit board and enables to contain two times memory than SIMM

DRAM – Dynamic Random Access Memory: It holds data for short time period and will be refreshed periodically.

SDRAM - Static RAM – Holds data and refreshing does not required. It is faster than DRAM.

Flash Memory: A non volatile, rewritable and solid state memory which performs the functions of both RAM and hard disk combined. Data is retained in the memory, in case of power loss. It is ideal for printers, cellular phones, digital cameras, pagers.

Shadow RAM: Allows the moving of selected parts of BIOS code that is available in ROM to the faster RAM.

Pre-emptive and Non-Preemptive Scheduling..??

Tasks are usually assigned with priorities. At times it is necessary to run a certain task that has a higher priority before another task although it is running. Therefore, the running task is interrupted for some time and resumed later when the priority task has finished its execution. This is called Preemptive Scheduling. E.g Round Robin

In Non-Preemptive scheduling, a running task is executed till completion. It cannot be interrupted.
Eg First In First Out

Monday, August 1, 2011

MongoDB

MongoDB (from "humongous") is a scalable, high-performance,open source, document-oriented database. Written in C++, MongoDB features:

  • Document-oriented storage » JSON-style documents with dynamic schemas offer simplicity and power.
  • Full Index Support » Index on any attribute, just like you're used to.
  • Replication & High Availability » Mirror across LANs and WANs for scale and peace of mind.
  • Auto-Sharding » Scale horizontally without compromising functionality.
  • Querying : Rich, document-based queries.
  • Fast In-Place Updates » Atomic modifiers for contention-free performance.
  • Map/Reduce » Flexible aggregation and data processing.
  • GridFS » Store files of any size without complicating your stack.
  • Commercial Support » Enterprise class support, training, and consulting available


Tuesday, June 21, 2011

Partial Class

A partial class, or partial type, is a feature of some OOPS in which the declaration of a class may be split across multiple source-code files, or multiple places within a single file.

Purpose
  • Very large classes
  • Allowing multiple developers to work on a single class at the same time without the need for later merging files in source control.
  • Allowing a separation between the class interface and the implementation-related definitions (Separate definitions of the public and private parts)
Implementation
The implementation of partial classes is quite straight-forward and architecture-transparent. When compiling, the compiler performs a phase of precompilation first it "unifies" all the parts of the partial class into one logical class, and from that point, normal compilation takes place.

Example
using System;
partial class Cylinder
{     
private double hgt;
private double rad;  
public Cylinder(double radius = 0D,  
               double height = 0D)    
 {         
this.rad = radius;         
this.hgt = height;     
}      
public double Radius     
{         
get 
{ 
return rad; 
}      
set 
{ 
rad = value; 
}     
}      
public double Height     
{      
get { return hgt; }      
set { hgt = value; }     
} }
Example1
using System; 
class Program 
{     
static Cylinder Initialize()     
{         
Cylinder c = new Cylinder(36.12, 18.84);         
return c;     
}      
static void Show(Cylinder vol)     
{         
Console.WriteLine("Radius: {0}", vol.Radius);         
Console.WriteLine("Height: {0}", vol.Height);     
}         
static int Main()    
{         
Cylinder cyl = Initialize();          
Show(cyl);          
Console.WriteLine();         
return 0;     
} }


Tuesday, May 24, 2011

Symbian

Symbian is an operating system (OS) and software platform designed for smartphones and currently maintained by Nokia. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional UI system, Symbian includes a user interface component based on S60 5th Edition. The latest version, Symbian^3, was officially released in Q4 2010, first used in the Nokia N8.

Symbian OS was originally developed by Symbian Ltd. It is a descendant of Psion's EPOC and runs exclusively on ARMProcessors, although an unreleased X86 port existed.



Operating system


The All over Model contains the following layers, from top to bottom:

  • UI Framework Layer
  • Application Services Layer
    • Java ME
  • OS Services Layer
    • generic OS services
    • communications services
    • multimedia and graphics services
    • connectivity services
  • Base Services Layer
  • Kernel Services & Hardware Interface Layer

Thursday, March 10, 2011

Web Server And Application Server

A web server can be referred to as either the hardware (the computer) or the software (the computer application) that helps to deliver content that can be accessed through the Internet.

The most common use of Web servers is to host Web sites but there are other uses like data storage or for running enterprise applications.

The primary function of a web server is to deliver web pages on the request to clients. This means delivery of HTML documents and any additional content that may be included by a document, such as images,styles,sheets and Javascripts.

A client (web browser) initiates communication by making a request for a specific resource using HTTP and the server responds with the content of that resource or an error message if unable to do so.Many generic web servers also support server-side scripting, e.g., Apache HTTP Server and PHP.


An application server is a software framework that provides an environment where applications can run, no matter what the applications are or what they do. It is dedicated to the efficient execution of procedures (programs, routines, scripts) for supporting the construction of applications.