Whats the difference between unix and windows

Status
Not open for further replies.

iMav

The Devil's Advocate
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.

In Unix, there is only one type of library file (.a) which contains code from several object files (.o). During the link step to create a shared object file (.so), the linker may find that it doesn't know where an identifier is defined. The linker will look for it in the object files in the libraries; if it finds it, it will include all the code from that object file.

In Windows, there are two types of library, a static library and an import library (both called .lib). A static library is like a Unix .a file; it contains code to be included as necessary. An import library is basically used only to reassure the linker that a certain identifier is legal, and will be present in the program when the DLL is loaded. So the linker uses the information from the import library to build the lookup table for using identifiers that are not included in the DLL. When an application or a DLL is linked, an import library may be generated, which will need to be used for all future DLLs that depend on the symbols in the application or DLL.
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
 
OP
iMav

iMav

The Devil's Advocate
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

CG Artist
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.
 
OP
iMav

iMav

The Devil's Advocate
well user friendly yes ... windows are more easy and user friendly than unix
 
OP
iMav

iMav

The Devil's Advocate
thank u, i myself learnt quite a bit, it was a good break from the 8051 working :D
 
OP
iMav

iMav

The Devil's Advocate
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

Technomancer
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!
 

praka123

left this forum longback
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

Wise Old Owl
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.
 
OP
iMav

iMav

The Devil's Advocate
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
 

Desi-Tek.com

In the zone
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 .
 
Last edited:
Status
Not open for further replies.
Top Bottom