No it is, if anything, completely backward but that's to be expected from Jan. To most, Computers are a *tool*. Nothing more. Because you like to play system-programmer and look down your nose at those who have other interests, doesn't mean others don't have other interests.
Do you include hardware engineers in the universe of "applications programmers"? I have zero interest in becoming an "applications programmer", or a programmer of any stripe but do quite a bit of hardware design. It's nice to be able to peek and poke registers.
The Linux thread scheduler is so brain-dead that you can't change the priority of threads in a process unless you're root. I don't mean jacking up your priority and hogging the machine from others--you can't even _reduce_ the priority of one of your threads.
Plus, if you are running as root, if you put one thread in the time critical class, your whole program--GUI thread and all--gets put in time-critical.
In a distributed system, where you want the communications threads talking to other boxes to preempt all purely-local threads, that scheduler is a stupid disaster. Windows is _much_ better that way.
I was pals with some of the developers, especially the inimitable Sam Detwiler--I shipped him some bits of hardware, and an OS/2 driver for them magically appeared.
Wow, they'd need a custom DLL to do that in PowerBasic. ;)
I use printf() and logfiles sometimes too--multithreaded code is pretty hard to debug, at least since the sad demise of the late lamented VisualAge C++ 3.08 for OS/2, which had the most beautiful debugger ever written.
It was pretty useful for instrument control, back in the day. You could run the parallel port a lot faster, for one thing. In a protected-mode OS you have to write a driver for that. OS/2 had a backdoor that made it easier--you could run 16-bit DLLs at IOPL (ring 2) which would let you do the same thing without needing a driver.
On a sunny day (Thu, 02 Oct 2014 10:06:48 -0400) it happened Phil Hobbs wrote in :
In extreme cases I just assign a core (yes I am always root) to a process. That root versus non-root crap only makes sense in rare cases. And yes, I have, now 2 times in my life since 1998 using Linux, delected part of the system tree. Fixing it both times did not take that long, maybe an hour. Opposed to that is users typing 10^100 times sudu, and then because they are clueless delete essential things anyways, Really and sincerely, computahs are very simple. Microplof just wants it to look complicated, no command line, like being in a strange country and communicating with pictures from a book. But still doing that after you are there for howlongisit since win 98? Of course there are things you should not be doing, but you will understand that if you just did some basic study. if you did, then you would know what a scheduler is, how to use / abuse it, and even how to improve it and put your code in the public domain, IAW if you know it so well were is your kernel patch? Give something back for all the effort put in by others. And this is the part I am missing in all the complainers:
1) they are clueless
2) they never reveal source, release programs, or improve anything.
3) Linux is NOT for dummies, neither can you drive a Ferrari if all you ever had is a tricycle. So a good book on Unix is a decent starting point to understand the file structure, architecture etc. And I do not mean that book under the table to keep it level. Its the same with ..tronix, you gotta get your hands dirty, else you'll be talking about it for eternity with nothing to show. Mistakes - learning process, well programming (to be able to program) is a gift I think. Some can play music, some can program, some whatever. Good.
On a sunny day (Thu, 02 Oct 2014 10:11:48 -0400) it happened Phil Hobbs wrote in :
I have not used a debugger since CP/M. C is a high level language and it needs no debugger, printf() is all you need. I trust gcc, its an amazing piece of work. A while back I was trying somebody's code for a rtty program, he wrote in his release it sometimes crashed, well it always crashed on my system. then I compiled it on raspi, and the compiler says: "If your code crashes then you probably forgot to add the line (some C code) at this and this place. I checked the code, it was indeed no there, added that line, compiled it, and it no longer crashed, send the author the patch. All credit to gcc. What more could you possibly want from a compiler? I had never seen messages like that,
Changing the priority of threads within a process is a pretty dicky concept anyway.
It is, of course, easy to change the priority of one of your own processes. Needing special permission/authentication to change the priority of another user's processes seems fundamentally sensible to me.
It's perfectly possible to debug using printf, but it requires you to guess what might be wrong. Single-stepping code through the debugger and making sure you try all the code paths is a mildly painful but very efficient way to keep bugs out of your sources. I hate debugging, so I like to do it the most efficient way possible--code carefully, use lots of assertions, read it all over the next day, single step in the debugger.
Test-driven design is one popular method, but most of my programs aren't intended to have long production lives.
Why? Just because Linux is hopelessly bad at it? (Fanboy alert!)
The example I gave is a real one. Being able to do that improved the scaling of my clusterized simulator by more than half: on a 14-node cluster, it was ~15% down from linear scaling running Windows, ~40% down from linear running Linux, same code. The scaling improved when running as root in real time, but since that puts _all_ threads in real-time, the compute threads hogged the machine and I couldn't talk to it until the simulation was finished.
On a sunny day (Thu, 02 Oct 2014 08:30:40 -0700) it happened John Larkin wrote in :
mm to update my email from what fetchmail (I just type fetchmail to ge tmail from all the servers i have email accounst at) gets, cp -up * /mnt/sdc1/pantel/root/mail/
Not that I have to type that line, the zsh shell allows me to type cp only, and then cursor up, will show that last cp line in that terminal. No programs and no scripts needed.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.