devc1 wrote:how cyber-criminals used to get into your PC with just a picture
Years ago, libjpeg had a
buffer overflow bug which, if I remember right, meant that a maliciously-constructed jpeg picture could run code on the X server under Linux. I have no doubt similar bugs have existed in Windows.
devc1 wrote:or when plugging your floppy.
This one is easy to explain in an OS development forum.
Boot sector viruses modified the boot sector code to stay in memory, to copy itself to other floppies or to hard drives, and to do other malicious or annoying things. (Bootsector viruses need to be for a specific OS to know how to say in memory and reproduce, but there were some for other systems.) Viruses were usually written by teenagers in those days, 'annoying' was more common than 'malicious'. On the Atari ST, I got caught by the Ghost virus which intermittently reversed the mouse pointer's vertical axis; annoying but surprisingly easy to get used to until it gets reversed again! XD
devc1 wrote:Yes it is down to the application, thats why Windows consumes 60% of my RAM before I boot up my computer : )
Once I tried to disable the page file, it leaded to better performance, LESS memory usage around 30% (IDK How, Why), and QEMU won't start with 4gb ram if I open multiple apps. But currently I am using it.
Interesting! I guess both OS components & user code see less total memory reported and allocate less.
I'm almost (but not quite) sure that the majority of memory most OSs allocate is for disk buffering. Also, ZFS wants vast amounts of RAM and Windows and Mac have developed some comparable filesystem features, so maybe the RAM is for more than just caching.
devc1 wrote:Windows main problem is supporting dumb languages such as python, java, c#,visual basic,node.js..... These phenomenes are very slow, yet consumming alot of RAM for a simple task.
You haven't seen slow until you've seen Python on an 8MB 486!
It was my first Linux box, I had no idea what I was doing, and the hardware was obsolete but the OS new-ish. The Python program was called Anaconda; it was Red Hat's 90s front-end to their package manager. Progress bars would take so long to appear, they'd give an estimated time to completion of several hours, but then the actual installation would complete in seconds. It was hilarious!
Years later, I had a Mac with a similar problem, though not so extreme. It was a 2001 iBook with the maximum RAM fitted, but OS X still wanted more just to load a progress bar. It was an animated progress bar, but that's no excuse. In 1992, Transport Tycoon could animate scenes in up to 4 movable windows and the background simultaneously on a 1st-gen Pentium with 4MB RAM, so there's little excuse for OS X chugging on a 320MB 466MHz PPC720. (That's the 2nd CPU which Apple called G3.)
Looking back to that era, I don't understand why Python was so bloated. In 2002 or so, I wrote a menu system in Python and used a window manager written in Lisp. The menu system was so much slower to start than the window manager. This seemed especially weird when I read that Python could be seen as a form of Lisp. Perhaps it's because Python is object-oriented, meaning it ran code for what would be simple memory accesses to structure elements in any sane language.
Object-oriented programming deserves special mention. From the 60s to the 90s, you often heard of the need to make programming easier. The motivation for this was not altruistic or progressive, it was financial. Corporations wanted large teams of programmers at low cost, but highly-trained professionals were expensive. High-level languages were an early effort to make programming cheaper, but they were 3rd generation. already by the end of the 60s, people were looking for a 4th-generation language (4GL). (For example, Forth, developed in 1970. Chuck Moore initially wanted to call it Fourth as a 4GL.) 15 or 20 years later, database languages were claimed to be 4GL.
But "making programming easier" was just the public face of all this. The idea of constraining programmers so they couldn't write bad code became prominent in the 80s & 90s. Apple were especially prominent, but there were many others. So, when you have a large corporation with many teams of programmers, what if you could constrain them so that they could only write code which fit their place within the hierarchy of the organization? This is what OO programming does; the structure of the language matches the structure of large corporations.
Now, I mentioned Apple for a reason: they particularly got into education. Their propaganda was so powerful that throughout the 90s and 00s, it was impossible to release a new programming language without making it object-oriented or at least pretending it was. The
universal belief in this truth was only broken when the creators of Unix spoke up. It's difficult to explain how deep this belief went without comparisons with religion, but perhaps compare the fanaticism with which the use of GOTO was eliminated after one paper warned people to use it carefully. Programmers are a crazy bunch. :p
Python was designed only as a scripting language; its author didn't want to call it a programming language until the mid-00s, but he designed it as an OO language all the way back in the early 90s.
Apart from all that, there's something entirely different which I hate about Windows and other GUI OSs. It hasn't bothered me for a few years, but now I want to partition a disk in Windows 10, I've run into it again and I remember. In Windows, I like to use the shell to launch Windows shortcuts. To get a shortcut, I can open the Start menu and type, (Cortana gets the typed text,) then right-click on the result and select "open file location". With Disk Manager, nothing happens when I right-click because Disk manager is
part of the control panel and thus
special and
different to other programs. Never mind that it works perfectly well as a standalone program,
it is special and thus the system places obstructions in the way of things you'd normally do with any other standalone program. I found this sort of thing frustrating to the point of actual pain when I was new to GUI OSs and trying to figure out what I could do with them.