# Whats the difference between unix and windows



## iMav (Jul 7, 2007)

Well after my first compilation which got a very good response and my second article which got a luke warm response and the on going OS war on this forum i was compelled to research again  so here i am again compiling another article from the internet tryin to understand a very complicated topic in simple terms....

like always in this article also attempts to make it as laymen possible have been made ....

also i may be not absolutely accurate at some places which can be corrected

Whats the difference between unix and windows

The difference is at the core and the way the core functions thereby everything that follows also behaves differently

The core of an OS is known as Kernel:



			
				wikipedia said:
			
		

> the kernel is the central component of most computer operating systems (OS). Its responsibilities include managing the system's resources and the communication between hardware and software components. As a basic component of an operating system, a kernel provides the lowest-level abstraction layer* for the resources (especially memory, processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls.


*The Computer system consists of 5 abstraction levels which are:

*upload.wikimedia.org/wikipedia/commons/thumb/0/03/Computer_abstraction_layers.svg/200px-Computer_abstraction_layers.svg.png

the kernel does this:

*upload.wikimedia.org/wikipedia/commons/thumb/e/eb/Kernel.png/200px-Kernel.png

*The UNIX system kernel*

   1. The *kernel allocates memory, keeps track of the physical location of files* on the computer's hard disks, loads and *executes binary programs such as shells*, and schedules the task swapping without which UNIX systems would be incapable of doing more than one thing at a time.
   2. The kernel accomplishes all these tasks by providing an interface between the other programs running under its control and the physical hardware of the computer; this interface, effectively insulates the other programs on the UNIX system from the complexities of the computer.
*
For example:*

When a running program needs access to a file, it cannot simply open the file; instead it issues a system call which asks the kernel to open the file. The kernel takes over and handles the request, then notifies the program whether the request succeeded or failed. To read data in from the file takes another system call; the kernel determines whether or not the request is valid, and if it is, the kernel reads the required block of data and passes it back to the program.

The kernel has subsystems like process management, memory management, file management, device management and network management. Each of the subsystem has some features:

    * *Concurrency*: As UNIX is a multiprocessing OS, many processes run concurrently to improve the performance of the system.

    * *Virtual Memory (VM)*: Memory management subsystem implements the virtual memory concept and a user need not worry about the executable program size and the RAM size.

    * *Paging*: It is a technique to minimize the internal as well as the external fragmentation in the physical memory.

    * *Virtual File System (VFS)*: A VFS is a file system used to help the user to hide the different file systems complexities. A user can use the same standard file system related calls to access different file systems.

The kernel provides these and other basic services: interrupt and trap handling, separation between user and system space, system calls, scheduling, timer and clock handling, file descriptor management.

*Now something about the Windows Kernel:*

*Windows Kernel Organization*

Kernel-mode organized into:

NTOS (kernel-mode services)
– Run-time Library, Scheduling, Executive services, object
manager, services for I/O, memory, processes, …
Hal (hardware-adaptation layer)
– Insulates NTOS & drivers from hardware dependencies
– Providers facilities, such as device access, timers, interrupt
servicing, clocks, spinlocks
Drivers
– kernel extensions (primarily for device access)

*upload.wikimedia.org/wikipedia/en/thumb/5/5d/Windows_2000_architecture.svg/468px-Windows_2000_architecture.svg.png
The Windows NT operating system family's architecture

*Major Kernel Services:*

**Process management*: 
Process/thread creation

**Security reference monitor*: 
Access checks, token management

**Memory manager*: 
Pagefaults, virtual address, physical frame, and pagefile management; 
Services for sharing, copy-on-write, mapped files, GC support, large apps

**Lightweight Procedure Call (LPC)*:
Native transport for RPC and user-mode system services.

**I/O manager (& plug-and-play & power)*
Maps user requests into IRP requests, configures/manages I/O devices;
implements services for drivers

**Cache manager*:
Provides file-based caching for buffer file system I/O
Built over the memory manager

**Scheduler*:
Schedules thread execution on each processor

Now thats a little too much of geeky stuff and its got me scratching my head too .... dont worry now we cut directly to the chase ...

Another difference between UNIX and Windows: 

1. Everything in UNIX is treated as file (even the h/w devices like printers, scanners etc!) but it is not the case in Windows, also:

2. 





			
				internet said:
			
		

> In Unix, a shared object (.so) file contains code to be used by the program, and also the names of functions and data that it expects to find in the program. When the file is joined to the program, all references to those functions and data in the file's code are changed to point to the actual locations in the program where the functions and data are placed in memory. This is basically a link operation.
> 
> In Windows, a dynamic-link library (.dll) file has no dangling references. Instead, an access to functions or data goes through a lookup table. So the DLL code does not have to be fixed up at runtime to refer to the program's memory; instead, the code already uses the DLL's lookup table, and the lookup table is modified at runtime to point to the functions and data.
> 
> ...


 i could partly understand the above 

3. Unix posseses the process hierarchy. When a new process is created by a UNIX application, it becomes a child of the process that created it. This hierarchy is very important, so there are system calls for influencing child processes. Windows processes on the other hand do not share a hierarchical relationship. Receiving the process handle and ID of the process it created, the creating process of a Windows system can maintain or simulate a hierarchical relationship if it is needed. The Windows operating system ordinarily treats all processes as belonging to the same generation.

4. UNIX uses daemons, Windows has service processes. Daemons are processes that are started when UNIX boots up that provide services to other applications. Daemons typically do not interact with users. A Windows service is the equivalent to a UNIX daemon. When a Windows system is booted, a service may be started. This is a long running application that does not interact with users, so they do not have a user interface. Services continue running during a logon session and they are controlled by the Windows Service Control Manager. 

I have some things that i want to cover but that require a little more research and time  8)

Source: The Internet 

PS: just a little something i found: *en.wikipedia.org/wiki/List_of_Linux_computer_viruses


----------



## saurabh kakkar (Jul 7, 2007)

all i know is Linux is better thats Y it is used in most of the SERVER SYSTEMS

good effort by the way


----------



## gaurav_indian (Jul 7, 2007)

Wohi difference jo scooter aur bike mein hota hai. Unix has better protection i guess.


----------



## iMav (Jul 7, 2007)

in of the articles i read the author said that most people only know that unix is more secure than windows thats it nothing more than that and i was also in that category so decided to sniff around a bit ....


----------



## gaurav_indian (Jul 7, 2007)

iMav said:
			
		

> in of the articles i read the author said that most people only know that unix is more secure than windows thats it nothing more than that and i was also in that category so decided to sniff around a bit ....


Also i have heard that windows are more user friendly than Unix.Havent used unix so cant tell about that.


----------



## iMav (Jul 7, 2007)

well user friendly yes ... windows are more easy and user friendly than unix


----------



## infra_red_dude (Jul 7, 2007)

thats a good compilation imav  interesting read for people who dunno abt os internals


----------



## iMav (Jul 7, 2007)

thank u, i myself learnt quite a bit, it was a good break from the 8051 working


----------



## adithyagenius (Jul 7, 2007)

you forgot the shell


----------



## saurabh kakkar (Jul 7, 2007)

gaurav_indian said:
			
		

> Wohi difference jo scooter aur bike mein hota hai. Unix has better protection i guess.



ha ha good one buddy


----------



## iMav (Jul 8, 2007)

hey guys a friend of mine put this on digg.com ... *digg.com/linux_unix/Whats_the_difference_between_unix_and_windows  ... so if u liked the article u may also please sdiig it


----------



## mediator (Jul 8, 2007)

Good work @manan.



			
				gaurav-indian said:
			
		

> Havent used unix so cant tell about that.


U can use BSDs, solaris etc. U can use PC-BSD. May be m wrong here, but AFAIK it is aimed for desktop users!


----------



## iMav (Jul 8, 2007)

thanx infra & mediator


----------



## praka123 (Jul 8, 2007)

one thing is :I think Windows gui shell OS's developed from MS-DOS.in earlier windows it is DOS which is the core and gui works over it.but with later windows versions,the importance of DOS went low and Windows became a complete gui shell.although a dos cli is available.
so a good comparison will be with UNIX and DOS .for gui, *bsd vs windows.
and Linux or Minix are not UNIX,but a UNIX-like system nearly posix compliant.
Guide to Unix/Why Unix-like


----------



## nileshgr (Jul 8, 2007)

Read This: www.windowsitpro.com/linuxfaq

Linux/Unix is much secure than Windows. Now Linux has become much user-friendly than the previous one. For each task we have a GUI tool. Linux is light on CPUs so it is easy to do multitasking on old CPUs too.


----------



## gxsaurav (Jul 8, 2007)

Sometimes I think *NIX is too secure to be user friendly.


----------



## iMav (Jul 8, 2007)

praka123 said:
			
		

> one thing is :I think Windows gui shell OS's developed from MS-DOS.in earlier windows it is DOS which is the core and gui works over it.but with later windows versions,the importance of DOS went low and Windows became a complete gui shell.although a dos cli is available.
> so a good comparison will be with UNIX and DOS .for gui, *bsd vs windows.
> and Linux or Minix are not UNIX,but a UNIX-like system nearly posix compliant.
> Guide to Unix/Why Unix-like


 well this is a difference not a competition  i first differentiated between the mac and a pc and now this article is for all those unlike mr. drm to understand what is the difference between the 2 OS 

we all know u have 9999999999999999999 links on linux, the thread is not for the linux user who knows more than every 1 else, u can add to the info by urself rather than giving links,

 the article is meant for people who want to understand linux and windows and like me are not from computers branch and know what they do by reading various sites


----------



## praka123 (Jul 8, 2007)

neither i want a flame war here again ,and u tagged wrong,may be anti-drm can be


----------



## Desi-Tek.com (Jul 8, 2007)

operating systestem concept was in my this semester and i learned a lot from it. 
what makes linux kernel better than windows kernel is the way it do memory management and scheduling .


----------



## gaurav_indian (Jul 8, 2007)

^^ You forgot Process management.


----------



## Desi-Tek.com (Jul 8, 2007)

scheduling  is a part of process management


----------



## gaurav_indian (Jul 8, 2007)

Desi-Tek.com said:
			
		

> scheduling  is a part of process management


haan wohich.


----------



## infra_red_dude (Jul 9, 2007)

yes, imav if you understand the part that you posted here, then try to move on to process and thread management. there are quite some differences there too.. biggest difference is the user to kernel thread mapping. that'll take u a bit deeper and make an interesting read


----------



## iMav (Jul 9, 2007)

okies ... thts next ... a couple of days


----------

