that depends, if you are running a cut down Linux like Puppy or DSL, then it's enough, if you are running XP, Vista or Win 7 (aka Vista reloaded) then it's not going to be enough, there's a lot of overhead, memory-wise and cpu-wise with Windows, I mean, think about it, minimum system requirements for the OS?, that's crazy, the OS should take up as little in the way of resources as possible, I remember getting a full GUI OS (dos with a midnight commander like shell on top) on just one 760k floppy with room for data and apps left over, most eight bit computers had their OS/core language in as little as 4 to 16k/Bytes, only machines like C64 and Dragon used large amounts of system ram (~32kb) and IMO thats down to them being written by MS more than anything
Amiga, Atari and Amstrad all had systems in ROM or on a single floppy that where recognisable "point and click" environments, recognised external devices, connected to networks etc, so why modern OS's need gigabytes of HD and high end CPU's/GFX to run, escapes me totally, I could understand it if my system was a full blown AI, but not for Dos with pictures, that's just dumb and wasteful.
IMO modern coding practises are to blame, OOP and the library mindset lead to bloated code, code that expands well beyond what you would expect for it's functionality, you only have to look at "dependency hell" on any Linux platform, install application A, you need libs/applications C,D,E,F, lib/app C needs codec G, libs H,I,J,K, lib/app D needs Python and Python libs L,M,N , app D needs codecs O,P,Q,R,S,T and apps U,V,W, plus libs X,Y,Z
then when you have THAT sorted, you can resolve the dependencies for C,D,E,F,G,H,I,J,K,Python,Ruby,Java,SQL,Perl,etc etc , it's a total mess, when I look at a Linux install, it's with a combination of wonder and horror, wonder that it actualy works, and horror at the thought that someone decided it was a good idea to build a system that depends on innumerable languages (python, perl, ruby, mono, bash, html etc scripts), libraries (just how many sound drivers/mixers/controllers DO you really need?), managers and daemons, cron tasks, etc etc....... URGH!
yes, it's all very "open", but it's also an anarchistic MESS, IMO the OOP paradigm is to blame, with all that abstraction, people are forgetting what is going on at machine level, probably the only people who write with the hardware in mind are driver coders, everyone else just keeps slapping another layer of abstraction on top of the whole heap, even with optimising compilers most of the code is so far removed from the hardware it,s running on, that most of the OS is spending a lot of time emulating virtual machines rather than actually DOING something.
there's no wonder my dual core 2.8Ghz, 3gig ram, 1Tb hd desktop seems sluggish at times compared to my old 14Mhz Amiga, the Amiga had the immeasurable advantage of having the core written for the hardware all the way through, the load on the system for an Amiga is so low that you can Emulate the original machine at crazy speeds on modern hardware DESPITE BEING EMULATED ON AN INEFFICIENT SYSTEM , that has to tell you something.
try using an emulator running an Amiga workbench for a while on a modern machine and it becomes apparent that something is badly wrong, when emulating an whole computer AND it's OS on a modern machine gives you a faster OS than the one on the machine you are running it on <_< , ok, it might not be so pretty, but I don't consider ANY modern desktop so pretty it deserves to own the whole machine just to add drop shadows to the mouse pointer
oooh!, I do go on....time to shut up, <pet peeve off>