Windows, Unix, Linux, and all between

Windows vs Linux? Windows vs Unix? Linux vs Unix? wait isn't that the same thing??

lets break it Up-Down.

HISTORY

briefing from this answer at stackexchange:

in the beginning, somewhere before the 50's, computers could do 1 thing, just like a car that can only drive. you have a wheel, but you cant tell it to pick up something. computers where designed to do 1 specific task and that's it.

then in the 50's OS (Operating System) started to apper, but you needed to tell them exactly what to do everytime you wanted to do something. take a look at the list with timeline.

there where games already. ye games, like chess and Space Travel. and some guys at AT&T Bell Labs decided to build a better simpler OS to run them. and thus Unix was born.

some big boys bought some rights, its was mainly for heavy Enterprise, gov, academy.

at a point they made standards for something to be called UNIX, and that lives till today, with 3 variations, POSIX, Single UNIX Specification (SUS), and Open Group Base. example:
http://www.unix.org/version4/overview.html

at the 70's-80's there where few major corps selling unix that where derived a bit from each other, and, mainly, made A LOT of money. and were all closed source execpt 1 (free BSD). thats for all the open souce free software people to remember for a second.

in the 80's 2 things where born after IBM's PC (Personal Computer) and DOS (Disk Operating System), Microsoft and the GNU project.

Microsoft saw the opportunity in IBM's PC, since UNIX was designed for computer engineers to use, it was hard to use. so MS bought some basic DOS, applied it to IBM's PC, and an empire was born.

meanwhile the GNU project, which, like other open source project has names that doesn't meets logical expectation but just fun ones, its stands for "GNU Not Unix", decided to build a free OS. but they meant freedom of use not free of price. technically the contributors make it also free until also the FSF was born.


lets make a stop here

lets understand 2 very important things here that will affect our future. when UNIX was designed, they thought about servers, heavy duty, computers that were meant to do great thing. so they designed it in and academic-industry level. and that's how it was and still is sold, very expensive, with its own dedicated hardware, itself dedicated and altered code to the mission.

MS just gave something simple ans low-cost to a simple and low cost hardware. the design was based on simplicity, single computer, single user, so internet, not nothing. a text editor and a game were to run on it.

continue

the GNU project had a problem, they never made it with completing a kernel (today technically they finished it but...).

and a bit before the 90's Andrew S. Tanenbaum designed and wrote the MicroKernel.

Kernel ? OS ?

ye, just a sec. whats an OS? and whats a Kernel?

and OS is this:
taken from wiki about OS. there is the Hard Disk, CPU, RAM, Graphics card, Keyboard, Mouse, all that? they cant talk to you, Mr. User. ye you click on the mouse, but how the computer knows the mouse is here and a button was clicked?

applications try to do things according to what you click on the mouse. but just imagine that every each game you buy you need to pay them for a software that activates the screen, mouse, sound, ect. that the job of the OS. an OS knows to "wake" the computer to life and do all the part of "talking" to the hardware, and also gives platform to other apps, like it renders images, compiles and run code, render text, ect., with sometimes help of drivers.

the part of "talking" with the hardware is the Kernel (from wiki).
now that you understand better what is an OS, and why the Kernel is such a major part of it, you can understand why single-user monolithic (non-modular) design will be totally different than a multi-user modular design, even if you see on the screen the same thing. just like riding a bike vs a jet.

soon the GUI (windows) will take a part too.

so until here we have UNIX and DOS. a shared feature for them is the terminal. while with UNIX its by design, for DOS is by limit. but after some time MS finally made it with Windows, a DOS that has a GUI, and that's an important note.

while these 2 are developing, DOS companies, MS as the head of the pyramid, and UNIX corps, a guy name Linus Torvalds built a kernel, that worked perfectly, and gave it free of charge, and called it Linux. that's why everybody refers the GNU OS as Linux.

Linux birth - professor Andrew Tanenbaum wrote a kernel designed differently, and he called it MicroKernel. so Torvalds didn't like it and wrote his own and used GNU for the rest. but they all, these 2 and the GNU project, got their idea's form the UNIX design, so its all called Unix-like.

since then, since its and open project and free, people did many many changes and developments and there are so many distributions of Linux, starting from some high priced stable servers, to some high end tech, with lately some many user friendly.

basically if you want to start use Ubuntu or Mint.

take a look at the history part ending here with this image



DIFFERENCES

so its easier to talk about the differences between UNIX and Linux, since GNU\Linux is very influenced from the UNIX project and spec, and while never trying to match the spec to be called a "real" Unix (and maybe the can), the took the principles and make something new, hopefully better, and free, free of charge, and with the freedom of use. you control the OS, not the OS controlling you.

the UNIX design, as simple as i can put is after reading a great article in the register, plus some extras, is a modular design with a matrix of who does (multi-user) it and where its done (multi-task). plus add the fact that everything is done via a terminal, SHELL and not a GUI.

since i found no image for that matrix, i made one so sorry for the results.
don't get petty with me, this is no a low level post. the point is that every app run in its own zone, and every user has its own right, so if the kernel is a user, and you are a user, and you run 2 apps, then app1 and app2 are running with your privileges, so they can't hack or sabotage the kernel, and if 1 ask image rendering and the other asks text rendering, or even if both asks the same, each is given a different context so they can't touch each other, nor damage ect.

so you basically cant ruin anything.

add the fact that everything runs from a shell, like a command line. you cant ruin anything. and almost cant get hacked.

add the fact that servers are make to be installed and administrate from another station, with no GUI at all, just connect via terminal. you cant ruin anything. and almost cant get hacked.

so very stable, very secure, very strong, easy handle multi tasking.
very NOT user friendly.... and that's a big thing whether you like it or not.

now UNIX vs GNU/Linux OS ... well since Unix is trademark and everything they couldn't use the same code so they wrote everything again just the same. there are some orientation differences, like Unix is more for a server with less filesystems support ect. while Linux is more for PC, ect. so design wise, at least for the early years, there are no major differences.

if you REALLY want the details read in IBM.



UNIX

so to wrap everything up to here, Unix, as you got it, is a commercial thing, most up-to-date versions are closed source and cost a lot of money, and developed by corps. some open sources exists, mostly for devs, and lately with some GUI.

its a high end OS for servers and heavy duty, and with the new Linux servers today its falling in numbers...

you can get a picture of the distributions of Unix from this image from wiki:

but its still the "father" of Linux and DOS.

BTW Mac-OS is originally a Unix, and today some still call it a Unix, some call it Unix-like.


WINDOWS

after stating that design wise Linux is a Unix remade for the private user, for a PC, i must cover windows before wrapping things with Linux since things changed.

MS-DOS, and every kind of DOS there was those days, tried to be Unix-like without the power of Unix. an OS, a terminal, that can do stuff, but single user and single task.

you can read in quora the technical differences between DOS and Unix, but to sum it up, the singularity makes it weak, non-secure, and if something goes wrong everything goes wrong.

but its simple. simple enough that they could ship it with EVERY IBM PC and ... created a monopoly.

Window up to 98/ME where actually DOS based. then they changed it to NT, and Windows 10 suppose to be something completely new, trying to catch up.

DOS was a great success, although it was so poor, because it was so SIMPLE. and low cost. anyone could use it. and those were days without internet, servers in every house and company, so also without all the common threats. so no-one needed more then that.

with Windows 3.11, the GUI, thing became better and and lately worse. the better, even every kid and old grandma can use windows, they took the market. everybody knows that the GUI idea they took from apple with their MacPaint


but that's all over now.

but the problems arrived. you want it simple? you cant do complicated with it. i'm talking now about all versions of windows, since these things came with time as windows became more and more the main OS in the world, server and PC.

1. singularity, single-user, single-task, and using same parts for everything, starting with using the kernel for single tasks just since its one piece with the OS, and up to having Internet Explorer as a service for Outlook, Help, and Browsing. everything is used everywhere like a web.

so whenever something breaks, it breaks everything, and you don't know what is it.

2. the single-user, single-task and also causes, in the time of internet, that taking control of 1 part mean you have complete control. easy to hack. also almost impossible to create a server.

3. GUI, not terminal, makes it easier since the hacker needs to just tell the computer to do ENTER instead of letters. that is why one of the greatest windows security features is the "Run As Administrator". you just need more clicks, and a right click at the right spot with the mouse is hard. no more ENTER horror.

but all that makes the "just do next next next" available, and that is where windows win. big time.

4. RPC model. as explained detailed in the register it means that every program in windows is always listening for incoming commands. again big doors for hackers.

5. no shell. you can do things only the windows way. the OS come as is no flexability. all that is generally just annoying most of the time.

Microsoft will be forever attacked for windows's singularity. for its weaknesses. and jealous for its success. a simple example for the "other side", the windows supporters is this makeuseof post.

its the "worse" OS, although not bad at all, exactly what a simple user needs, and is evolving. has support for games, programs, dev, servers, they do everything, even the new PowerShell gives you all the ability of .NET, have most support software-wise, hardware-wise, truly a simple user, i.e. not a Dev or IT can't afford using something else. not even Linux.



LINUX

so as we said, as an OS is a Unix, or to be exact a Unix-like. so it has all the advantages of Unix, security, stability.

but also has its downsides, complex, and therefor cant be used for simple user. so much less games, programs, ect. and ever less servers since people got used to Windows, so that's the GUI they know and want to use. for years Linux was just a free Unix, for academy, Devs and IT that were more dedicated.

having a GUI in Linux is not such a downside, up to lately, since the GUI was only for exploring what you have, but real things like adding users or security stuff needs terminal. although that's changing too. although for real security do create a GUI-less server and connect via terminal from another station.

but linux also has the middle part that Unix and Windows don't. the community. and with the rising of the web, where everybody can take a part (thank to windows that made is possible for everyone to own a computer that they can operate as a kid/student) the community helped building up things, so still as time passes we see more drivers, softwares, hardware comparability, games, ect., and a better and better GUI.

while years ago Linux was a thing for devs, IT, hackers, ect., with new simpler GUI's around, more user friendly distributions, and the focus to enable it for the simple user its getting a very good swing, especially in the servers zone, where its just much cheaper.

its still doesn't come near Windows, still a bit complex, too much Distros, and while it takes big time in stability, security, and price, Windows still takes it big time with support and ease of use, which are the main criteria for the simple user.



CONCLUSION

with the drive of open source and community, even Microsoft makes more and more things open source, and free.

Linux come more and more towards the understanding that if you want a real piece of the market, you can't stay with the stability-security but must help the simple user, even in the server part.

if you know your way, and want to save the 100$, use Linux. I chose Windows 10 Pro to learn it with Hyper-V.

Linux is coming, faster and faster, and its great, lets learn it.


Comments

Popular posts from this blog

Asp.Net Ending Response options, Response.End() vs CompleteRequest()

c# Service Play Sound with NAudio example by Moshe

JS/JQ simulate Enter event