You are not logged in.

#1 2017-12-17 06:09:53

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 5,350
Website

How much abstraction is "just right"?

Head_on_a_Stick wrote:

I despise abstraction in any form

Everything we do on a computer is an abstraction. (The old adage about magnetized needles...)
It's just a question of what degree of abstraction you prefer.


John
--------------------
( a boring Japan blog , Japan Links, idle twitterings  and GitStuff )
In case you forget, the rules.

Offline

#2 2017-12-17 15:40:33

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

johnraff wrote:

It's just a question of what degree of abstraction you prefer

As little as possible — every extra layer adds more potential bugs.

This is one of the reasons I tend to prefer Arch & Alpine over Debian, the abstractions granted by the latter are very nice (I love the alternatives system, for example) but they do just add more things to go wrong and make the system more difficult to troubleshoot and maintain, especially for a newcomer.


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#3 2017-12-18 00:33:09

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

^ Granted definitely something to be said there, the "as little as possible" thing. Though Debian vs Arch is kinda silly, as both can be whatever. Trying to say, my Os's, minimal Debian netinstall(s) are no different in terms of "abstraction layers" as you're implying them compared to an Arch install. Both = base then add as much or little as someone likes from there.

Same can pretty much be said for everything else gnu/Linux. Machinebacon did a handy how-to in the #! forum with the ubuntu business card iso. Thing turned out lean and mean but that was his obvious goal while doing it. They(Canonical Inc) still have a mini.iso that's all of 30mbs. Have it onhand just can't bring myself to want to build a minimal ubuntu install. Would only end up overwriting it quickly afterwards anyway. All could be stripped of these abstraction layer thingys to greatest extent too. Just a matter of starting with the right tool for the job imo, that of course being better to start with a base and flesh out from there vs the other way. Start with a bloated monstrosity and having to strip it to the bones.

Oops OT: So the mkusb thing is to create bootable thumbdrives etc ? +1 Hoas, having a hard time seeing what's wrong with cp or dd, so easy even I can do it. Still though if someone feels a need for something else and is willing to do the work involved, can't see anything wrong with giving people another option.

Offline

#4 2017-12-18 02:09:34

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 5,350
Website

Re: How much abstraction is "just right"?

BLizgreat! wrote:

if someone feels a need for something else and is willing to do the work involved, can't see anything wrong with giving people another option.

This.

There's nothing wrong with letting people know our personal tastes in system interfaces, but allow others a bit of room for theirs too, eh?


John
--------------------
( a boring Japan blog , Japan Links, idle twitterings  and GitStuff )
In case you forget, the rules.

Offline

#5 2017-12-18 05:40:49

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

^ Well said, per usual Raff-san. smile

Offline

#6 2017-12-18 07:23:28

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

BLizgreat! wrote:

Though Debian vs Arch is kinda silly, as both can be whatever. Trying to say, my Os's, minimal Debian netinstall(s) are no different in terms of "abstraction layers" as you're implying them compared to an Arch install. Both = base then add as much or little as someone likes from there.

You misunderstand me — I am not talking about the software packages that may be installed (Debian is clearly less bloaty than Arch in that respect because they split their packages up more) but rather the underlying system administration tools and mechanisms, such as the alternatives system, which are numerous and common in Debian but almost non-existent in Arch where the user is left to "fend for themselves" (which I very much prefer but others dislike).


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#7 2017-12-18 08:56:27

Steve
Member
Registered: 2017-01-03
Posts: 642

Re: How much abstraction is "just right"?

Whats is the problem (if any) about debian alternatives in your opinion Hoas, to me it seems like a smart abstraction layer that makes sense?

The way i see it is how many versions of the same type of program do you need? Take for instance a text editor, geany should suffice if you like to use geany so why would someone have say gedit as well. Ive never had any issues with arch linux and choosing what program to use for certain tasks and having them stick, so i kind of agree that sort of abstraction could be deemed innapropriate but i dont really know enough about its usage to make the assumption that it is not useful. Or perhaps some editor programs do other tasks geany cant therefore the reasoning to have both is justified and having debian alternatives to make defaults stick is warranted.

Last edited by Steve (2017-12-18 09:08:05)

Offline

#8 2017-12-18 12:14:27

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Bytes tongue, no worries it's gnu/Linux. Whichever someone prefers for whichever reasons. Though you know where I stand on Debian vs Arch. No point in elaborate babbling about it. We're all free to use whichever so all is well in the Nixverse. big_smile

Offline

#9 2017-12-18 21:35:16

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

Steve wrote:

Whats is the problem (if any) about debian alternatives in your opinion Hoas

There is no specific problem with Debian's alternatives system, I like it very much and miss it when I'm using Arch; there was even some discussion on the Alpine Linux mailing lists about adding an alternatives system to their distrution.

However, I do prefer simpler systems whenever possible, partly because of my OCD tendencies but mainly because less code equals fewer bugs.

I like this quote from a namesake of mine:

C A R Hoare wrote:

There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.

I prefer software that follows the first paradigm.


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#10 2017-12-18 23:06:51

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

^ So in other words, what you're basically trying to say there is .... DEBIAN RULEZ N ARCH DROOLZ !?!?!?! Yep ... being a dork, I couldn't resist it. smile

Offline

#11 2017-12-19 00:55:38

johnraff
nullglob
From: Nagoya, Japan
Registered: 2015-09-09
Posts: 5,350
Website

Re: How much abstraction is "just right"?

Apologies to the Original Poster.

This side-issue of "How much abstraction is enough?" is really another prime candidate for Topics Going Nowhere.
Surely you've all heard of the guy who does everything on his computer by poking a magnetized needle at the hard disk?
As I said a bit earlier, everything you do on a computer is an abstraction. A shell is an abstraction, a kernel is an abstraction, even machine code is an abstraction.

Just how many layers of what kind of abstraction you prefer to use is very much an individual choice, depending on your individual needs, abilities...

BTW BunsenLabs tries to strike a kind of compromise here, but everyone is of course entirely free to pile more stuff on, or strip stuff off, as they prefer. smile


John
--------------------
( a boring Japan blog , Japan Links, idle twitterings  and GitStuff )
In case you forget, the rules.

Offline

#12 2017-12-19 01:42:25

cloverskull
Member
Registered: 2015-10-01
Posts: 307

Re: How much abstraction is "just right"?

I think BL has an excellent, clean, simple user experience OOTB, and is about as barebones one can expect to boot cold onto most modernish hardware and things will typically just work. While I reconcile this topic is totally subjective and going nowhere, I think the reason BL is (and #! was) so successful is due to objectively useful minimalism.

Offline

#13 2017-12-19 06:30:56

ohnonot
...again
Registered: 2015-09-29
Posts: 3,764
Website

Re: How much abstraction is "just right"?

i don't understand the preachers of minimalism. (*)
there seems to be some sort of split personality thing; many people preach to go as minimal as possible, yet they use a graphical environment & browser and sometimes even show off their $DE desktops.
so what?
there will always be choices that work best for each individual, and the outcome will be neither "the perfect super-minimal *nix-like system" nor "ultimate gui desktop everything either automated or single click", but always something in between.

(*) for the sake of balance i should also say that i don't understand the preachers of GUI bloat either.

Offline

#14 2017-12-19 07:15:45

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

johnraff wrote:

Surely you've all heard of the guy who does everything on his computer by poking a magnetized needle at the hard disk?

Reference: https://xkcd.com/378/

My main point is this:

More layers == more bugs.

But:

More layers == more convenience.

So "just right" depends on which you favour more: convenience or correctness.


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#15 2017-12-19 19:09:50

sudodus
Member
Registered: 2017-12-15
Posts: 12

Re: How much abstraction is "just right"?

A safety belt in a car is adding complication, I would compare it to an abstraction layer. Do you use the safety belt in your car?

I think that some abstraction layers add safety, that might be converted to convenience. Think of regular users and root. It adds safety but also complication.

Imagine, that you want to create a USB drive and slip on the keyboard and point your cloning tool to write to your hard disk drive (of course you have a backup, but maybe some new files are not backed up yet).

With dd and cp there is no final checkpoint, it does what you tell it to do without any questions.

mkusb wraps a safety belt around dd. mkusb-min is a minimal extra layer for the same purpose. I think it can be worth the extra complication (or abstraction if you wish) also for some bunsenlabs users.

help.ubuntu.com/community/mkusb/min

Offline

#16 2017-12-19 22:03:16

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

sudodus wrote:

A safety belt in a car is adding complication, I would compare it to an abstraction layer. Do you use the safety belt in your car?

Interesting analogy smile

It is worth noting that in the years after the seatbelt law was introduced in the UK, there was a significant rise in the number of accidents.[1]

If people feel safer then there is a natural tendency to compensate and take more risks in other areas.

sudodus wrote:

Imagine, that you want to create a USB drive and slip on the keyboard and point your cloning tool to write to your hard disk drive (of course you have a backup, but maybe some new files are not backed up yet).

I would suggest that perhaps your tool would encourage a more careless attitude to root commands and backup strategies.

Also, what if there is a bug in your script?

[1] researchbriefings.files.parliament.uk/d … N02198.pdf


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#17 2017-12-21 22:54:47

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Being tech don't believe there's necessarily an easy answer to it. Agree in part about more moving parts/complexity, more stuff that can breakdown. Same time, being tech ... it's been demonstrated that things can be setup to self-diagnose, even repair and/or safe guard the endusers to whatever extent.

Still tend to lean towards lean, tried many things "minimal" gnu/Linux and can honestly say #! was somehow unique and dang glad BL team is carrying it on, hopefully will improve upon the model Corenominal established.

Offline

#18 2017-12-21 23:14:27

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

BLizgreat! wrote:

it's been demonstrated that things can be setup to self-diagnose, even repair and/or safe guard the endusers to whatever extent

Can you provide a citation for this claim please?

I am far from expert in the subject but it is my understanding that there exist mathematical proofs of code correctness — that is, a way of proving that the system will run exactly as expected and will exhibit no bugs at all.

Any code that has been analysed in such a fashion and passed the tests is known as a Trusted Computing Base.

The important point to note here is the extremely small size of any extant TCBs: they tend to run in at less than 10,000 lines of code (for the microkernels[1]) — by comparison, the Linux kernel has several million lines so to expect any "self-repair" code to be bug-free sounds like wishful thinking to me.

[1] https://sel4.systems/Info/Docs/GD-NICTA-whitepaper.pdf

Last edited by Head_on_a_Stick (2017-12-21 23:16:31)


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#19 2017-12-22 00:24:30

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Too lazy to specifically do so, though tech is in fact getting scary. Read some of any of the random links, even in this forum. Stuff pertaining to AI artificial intelligence. Too lazy to dig it up too but someone not too long ago posted about such a case where the pc was actually reprogramming itself, in a syntax not even understood by the original designers supposedly.

Another such example would be a modern automobile, gotten to the point where so many sensors and systems are integrated into them, they'll tell a mechanic specifically what's wrong and what to repair. So at this point would say self repair is a bit impractical to implement in desktop gnu/Linux, at least it's beyond my skill level. Not something atm am willing to dig into, though don't at all doubt it's totally possible. Self diagnostics more practical, again though a subject someone would be better taking up with a search engine of their choosing.

Am sure similar could be integrated into an operating system, a computer does what it's programmed to do, with available software and resources. Such things can surely be automated to great extent. I like BL, like my own choices in terms of Debian and yep, tends towards minimalism. Each their own though, think overall it's just a matter of knowledge and skillset. Gnu/Linux, is gnu/linux is gnu/linux blahblah etc.

And Vll! big_smile

PS, btw Hoas interesting info, was too busy jumping to babble to fully read what you'd posted.

Last edited by BLizgreat! (2017-12-22 01:10:25)

Offline

#20 2017-12-23 03:25:58

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Just for the record link, similar to what I'm babbling about, yeppers long since been a reality too and to whatever extent already incorporated in gnu/Linux. Though just not to the extent I'm implying here. That being self diagnostics and can be programmed to initiate a step by step repair/response procedure in the event a problem is detected.

User protection, is also present, I've had the terminal output warn of xyz-hazard or say something like are you sure about this, if so type yes, do as I say etc. Not like even dealing with hardware failure is much of a stretch in modern computing, though this requires that redundant and backup components etc are available. ie: Detects hardware component failure, could easily be programmed to switch to an alternate. Whereas at some point a tech would have to replace/repair.

This I guess, in the context of "abstraction" or layers or whatever, someone may say is too much abstraction. However if designed and implemented well. The knowledge, skills and choices made by the people involved with this scenario would be the determining factor as to whether it's good or not. Also again just for record kinda thing, 10k lines of code (even millions) are a joke in terms of the resources highspec computers have now anyway. Consider a super computer, let alone a bank or array of them. They could smash massive amounts of data in frighteningly brief periods of time. While performing whatever functions they are programmed to do and not blink a digital eye or come close to breaking a sweat in the process, shrugs.

Personally long since have still come to prefer "minimalism". Always have, always will like doing more with less or getting the most out of available resources, minimizing waste etc. Which it's waste imo if it doesn't serve a productive purpose or goes against the preferences of the system admin. Plenty of nixers who consider bloat to be productive use of resources and can't say they're wrong, at least for them I can't, it's their choice and system(s).

Last edited by BLizgreat! (2017-12-23 03:35:29)

Offline

#21 2017-12-23 04:00:26

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Oops, one more afterthought babbling about this too. Another obvious example, though not familiar with it in detail, systemd's claimed ability to monitor services status and automatically restart them if they crash. Just another example of software self diagnostics and correction that's already incorporated into gnu/Linux. Guessing there are tons of these already implemented, to whichever extent. A result of all the amazing geeks who've created and contributed to all this kickbuttness over the decades.

VLL! big_smile

Offline

#22 2017-12-23 12:37:31

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

BLizgreat! wrote:

Hey, I can do my own internet searches tongue

I just though that perhaps you had a specific example in mind.

Also, did you bother to read the papers in that Google link?

They talk about emulating the behaviour of microkernels[1] in Linux by adding a code wrapper over the top of existing syscalls.

What they gloss over somewhat is the inevitable and unavoidable fact that this fancy new wrapper (layer) will have bugs and these bugs have the potential to be very serious indeed.

systemd's claimed ability to monitor services status and automatically restart them if they crash

As I have mentioned to you before _all_ init systems do that — it's part of the job description wink

Anyway, the Linux kernel is rubbish at dealing with stuff like crashing drivers because of it's monolithic nature, hence the drive to use wrappers such as those in your LMGTFY link.

EDIT:

[1] I appreciate that "microkernel" is a very imprecise term and popular usage has rendereded it almost meaningless but in this case I am using it to refer to operating system kernels that can automatically reboot crashed drivers (because the drivers operate in user space rather than kernel space) such as the Mach kernel used by Hurd and Minix's version.

Last edited by Head_on_a_Stick (2017-12-23 13:49:14)


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#23 2017-12-23 14:32:35

BLizgreat!
Resident Babbler - vll!
Registered: 2015-10-03
Posts: 1,000

Re: How much abstraction is "just right"?

Main thing I was alluding to is the overall concept and our perceptions and views of the potential for this type of thing are obviously different. Have some interesting idea's in such a niche on the 2dork list, it's a long list and could very well never even get around to figuring such out.

The systemd thing, is just a clear example of self correction, handled by the underlying software without any user intervention required. Doesn't matter which piece of software, which exact function in this type of thing it performs, as long as it's reliable and useful, shrugs. Ah either way, as per above, each totally free to use(not use), learn a given topic or not and config as they deem best. So all is still right within the Nixverse. big_smile

Vll!

Offline

#24 2017-12-23 14:38:31

Head_on_a_Stick
Member
From: London
Registered: 2015-09-29
Posts: 8,759
Website

Re: How much abstraction is "just right"?

BLizgreat! wrote:

The systemd thing, is just a clear example of self correction, handled by the underlying software without any user intervention required. Doesn't matter which piece of software, which exact function in this type of thing it performs, as long as it's reliable and useful

Yes, and that's my point — the simpler implementations (such as s6[1]) will be more likely to be reliable than the more complex versions (such as systemd).

Whether the extra functionality offered by systemd is worth the risk of the extra bugs would seem to be an entirely subjective judgement.

[1] https://skarnet.org/software/s6/


“Et ignotas animum dimittit in artes.” — Ovid, Metamorphoses, VIII., 18.

Forum Rules   •   How to report a problem   •   Software that rocks

Offline

#25 2017-12-23 16:51:28

o9000
tint2 developer
From: Network Neighborhood
Registered: 2015-10-24
Posts: 398
Website

Re: How much abstraction is "just right"?

Head_on_a_Stick wrote:

The important point to note here is the extremely small size of any extant TCBs: they tend to run in at less than 10,000 lines of code (for the microkernels[1]) — by comparison, the Linux kernel has several million lines so to expect any "self-repair" code to be bug-free sounds like wishful thinking to me.

Depends on your target, if you're OK with a probability of self-repair that approaches 1 but may be a bit less, it's much easier to accomplish. Chromebooks, for example, can recover from all practical issues people may encounter, AFAIK.

Offline

Board footer

Powered by FluxBB