On 2022-05-30 05:12, Susmita/Rajib wrote:
Could I please be given a little more guidance on the following aspects
please?:
(1) exhaustive example codes
All Debian main packages have source code as they are free software.
(2) object library resources, references, explanations, et al
All Debian main libraries have source code as they are free software.
(3) Whether Eclipse could be used for c++
Yes, it can.
(4) Whether Device Drivers and other lower-level programs could be
designed with c++, like they are done in c or assembly level languages
(I am aware that KDE was written in c++, but ...).
Yes with severe limitations as I described in my previous email.
(5) Whether optimisation tools like valgrind and gdb are available
for c++ also
Yes I have used valgrind and gdb on C++.
However kernel mode debugging (for kernel or device drivers) can't use
valgrind and needs a special debugger (this exists now for Linux but I
don't think it did when I started using Linux 20+ years ago).
Please feel free to post any other general guidance and advice please,
considering that you are actually talking to a novice.
My advice is take advantage of the fact that Debian and all its software
are free software (open source). Grab the code for some program you use
and compile it then modify it to suit your needs. You will find this
hard. But software is hard. This is something you need to accept. It is
not primarily because people have done a bad job writing the software.
It is reality.
As an intellectual philosophical read I recommend in the beginning was
the command line by Neal Stephenson.
https://web.archive.org/web/20180218045352/http://www.cryptonomicon.com/beginning.html
To quote the end (apologies for the length):
THE RIGHT PINKY OF GOD
In his book The Life of the Cosmos, which everyone should read, Lee
Smolin gives the best description I've ever read of how our universe
emerged from an uncannily precise balancing of different fundamental
constants. The mass of the proton, the strength of gravity, the range of
the weak nuclear force, and a few dozen other fundamental constants
completely determine what sort of universe will emerge from a Big Bang.
If these values had been even slightly different, the universe would
have been a vast ocean of tepid gas or a hot knot of plasma or some
other basically uninteresting thing--a dud, in other words. The only way
to get a universe that's not a dud--that has stars, heavy elements,
planets, and life--is to get the basic numbers just right. If there were
some machine, somewhere, that could spit out universes with randomly
chosen values for their fundamental constants, then for every universe
like ours it would produce 10^229 duds.
Though I haven't sat down and run the numbers on it, to me this seems
comparable to the probability of making a Unix computer do something
useful by logging into a tty and typing in command lines when you have
forgotten all of the little options and keywords. Every time your right
pinky slams that ENTER key, you are making another try. In some cases
the operating system does nothing. In other cases it wipes out all of
your files. In most cases it just gives you an error message. In other
words, you get many duds. But sometimes, if you have it all just right,
the computer grinds away for a while and then produces something like
emacs. It actually generates complexity, which is Smolin's criterion for
interestingness.
Not only that, but it's beginning to look as if, once you get below a
certain size--way below the level of quarks, down into the realm of
string theory--the universe can't be described very well by physics as
it has been practiced since the days of Newton. If you look at a small
enough scale, you see processes that look almost computational in
nature.
I think that the message is very clear here: somewhere outside of and
beyond our universe is an operating system, coded up over incalculable
spans of time by some kind of hacker-demiurge. The cosmic operating
system uses a command-line interface. It runs on something like a
teletype, with lots of noise and heat; punched-out bits flutter down
into its hopper like drifting stars. The demiurge sits at his teletype,
pounding out one command line after another, specifying the values of
fundamental constants of physics:
universe -G 6.672e-11 -e 1.602e-19 -h 6.626e-34 -protonmass
1.673e-27....
and when he's finished typing out the command line, his right pinky
hesitates above the ENTER key for an aeon or two, wondering what's going
to happen; then down it comes--and the WHACK you hear is another Big
Bang.
Now THAT is a cool operating system, and if such a thing were actually
made available on the Internet (for free, of course) every hacker in the
world would download it right away and then stay up all night long
messing with it, spitting out universes right and left. Most of them
would be pretty dull universes but some of them would be simply amazing.
Because what those hackers would be aiming for would be much more
ambitious than a universe that had a few stars and galaxies in it. Any
run-of-the-mill hacker would be able to do that. No, the way to gain a
towering reputation on the Internet would be to get so good at tweaking
your command line that your universes would spontaneously develop life.
And once the way to do that became common knowledge, those hackers would
move on, trying to make their universes develop the right kind of life,
trying to find the one change in the Nth decimal place of some physical
constant that would give us an Earth in which, say, Hitler had been
accepted into art school after all, and had ended up his days as a
street artist with cranky political opinions.
Even if that fantasy came true, though, most users (including myself, on
certain days) wouldn't want to bother learning to use all of those
arcane commands, and struggling with all of the failures; a few dud
universes can really clutter up your basement. After we'd spent a while
pounding out command lines and hitting that ENTER key and spawning dull,
failed universes, we would start to long for an OS that would go all the
way to the opposite extreme: an OS that had the power to do
everything--to live our life for us. In this OS, all of the possible
decisions we could ever want to make would have been anticipated by
clever programmers, and condensed into a series of dialog boxes. By
clicking on radio buttons we could choose from among mutually exclusive
choices (HETEROSEXUAL/HOMOSEXUAL). Columns of check boxes would enable
us to select the things that we wanted in our life (GET MARRIED/WRITE
GREAT AMERICAN NOVEL) and for more complicated options we could fill in
little text boxes (NUMBER OF DAUGHTERS: NUMBER OF SONS:).
Even this user interface would begin to look awfully complicated after a
while, with so many choices, and so many hidden interactions between
choices. It could become damn near unmanageable--the blinking twelve
problem all over again. The people who brought us this operating system
would have to provide templates and wizards, giving us a few default
lives that we could use as starting places for designing our own.
Chances are that these default lives would actually look pretty damn
good to most people, good enough, anyway, that they'd be reluctant to
tear them open and mess around with them for fear of making them worse.
So after a few releases the software would begin to look even simpler:
you would boot it up and it would present you with a dialog box with a
single large button in the middle labeled: LIVE. Once you had clicked
that button, your life would begin. If anything got out of whack, or
failed to meet your expectations, you could complain about it to
Microsoft's Customer Support Department. If you got a flack on the line,
he or she would tell you that your life was actually fine, that there
was not a thing wrong with it, and in any event it would be a lot better
after the next upgrade was rolled out. But if you persisted, and
identified yourself as Advanced, you might get through to an actual
engineer.
What would the engineer say, after you had explained your problem, and
enumerated all of the dissatisfactions in your life? He would probably
tell you that life is a very hard and complicated thing; that no
interface can change that; that anyone who believes otherwise is a
sucker; and that if you don't like having choices made for you, you
should start making your own.
Bijan