Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

If you ever used NT 4 you would know that this was practically necessary

yeah, nothing could make that turd feel fast

Adbot
ADBOT LOVES YOU

Notorious b.s.d.
Jan 25, 2003

by Reene

Sapozhnik posted:

i mean yeah linux and the whole posix model in general have a somewhat discredited design at this point but fuschia is a land grab and nothing more. it is in nobody's business interest other than google's, qualcomm's, and cell carriers' for it to succeed.

i'm not even clear on how it's a win for google

writing their own os kernel with its own non-posix interfaces seems like some navel gazing bullshit

pseudorandom name
May 6, 2007

tbf posix is bad

Notorious b.s.d.
Jan 25, 2003

by Reene

pseudorandom name posted:

tbf posix is bad

writing your own process creation / thread management api just means somebody else is going to come along and smear a horrible posix-compatible fork and pthreads implementation overtop it anyway

might as well embrace the badness

pseudorandom name
May 6, 2007

fork() is the number one reason why posix is garbage and more operating systems need the courage to acknowledge that fact and move on

Notorious b.s.d.
Jan 25, 2003

by Reene

pseudorandom name posted:

fork() is the number one reason why posix is garbage and more operating systems need the courage to acknowledge that fact and move on

the courage not to be compatible with the software that is already written

Notorious b.s.d.
Jan 25, 2003

by Reene
fuschia has the courage to be completely loving useless

see also: jony's macbooks

BobHoward
Feb 13, 2012

The only thing white people deserve is a bullet to their empty skull

Sapozhnik posted:

"stable kernel driver interface" oh goody i love IHV-maintained drivers that have some mandatory garbage winamp skin interface that marketing says has to show up as much as possible

and its own updater don't forget that

why not add a little light spyware while we're at it

os-level protection is very important particularly to protect against the user not paying a monthly subscription fee for absolutely loving everything

i mean yeah linux and the whole posix model in general have a somewhat discredited design at this point but fuschia is a land grab and nothing more. it is in nobody's business interest other than google's, qualcomm's, and cell carriers' for it to succeed.

what does a stable kernel driver interface have to do with the rest of your rant

for example, afaik those garbage winamp skin uis and updaters you get when installing a wandows gpu driver are separate user space binaries, not part of the module loaded into the kernel

im sure fuschia is a land grab but lol if you think a stable kernel driver api/abi is anything more than goog wanting to fix one of the perpetual dumb broken by design linux problems at the same time. it is possible for a thing you hate to not be pure evil in every last detail, you know?

pseudorandom name
May 6, 2007

Notorious b.s.d. posted:

the courage not to be compatible with the software that is already written

and nothing of value was lost

Sapozhnik
Jan 2, 2005

Nap Ghost

BobHoward posted:

what does a stable kernel driver interface have to do with the rest of your rant

for example, afaik those garbage winamp skin uis and updaters you get when installing a wandows gpu driver are separate user space binaries, not part of the module loaded into the kernel

im sure fuschia is a land grab but lol if you think a stable kernel driver api/abi is anything more than goog wanting to fix one of the perpetual dumb broken by design linux problems at the same time. it is possible for a thing you hate to not be pure evil in every last detail, you know?

no you dont understand it's really important that i have a REALTEK HD AUDIO MANAGER that looks like it's ready to start playing the motion picture soundtrack from The Matrix pop up every time i plug in an audio device

Sapozhnik
Jan 2, 2005

Nap Ghost
making it a pain in the rear end for an ihv to maintain a linux driver that is not part of the upstream project is not a bug, it's a feature. only nvidia has managed to swim against that tide and it's still a giant pain in the rear end for everybody to deal with.

Xarn
Jun 26, 2015
And by everybody you mean both Linux desktop users I guess :v:

champagne posting
Apr 5, 2006

YOU ARE A BRAIN
IN A BUNKER

Notorious b.s.d. posted:

the courage not to be compatible with the software that is already written

Cybernetic Vermin
Apr 18, 2005

nbsd doing a bit of posting performance art, in derailing the pl thread about linux, the linux thread about rpgs, and, i presume, some games thread somewhere about programming languages (or maybe there is a longer cycle still, i am only seeing these pieces of the chain)

Sapozhnik
Jan 2, 2005

Nap Ghost
welcome to yospos

take off your shoes

stay a while

DELETE CASCADE
Oct 25, 2017

i haven't washed my penis since i jerked it to a phtotograph of george w. bush in 2003

pseudorandom name posted:

pthreads are the number one reason why posix is garbage and more operating systems need the courage to acknowledge that fact and move on

feedmegin
Jul 30, 2008

Notorious b.s.d. posted:

writing your own process creation / thread management api just means somebody else is going to come along and smear a horrible posix-compatible fork and pthreads implementation overtop it anyway

might as well embrace the badness

You mean 'nearly compatible but with horrific edge cases also the performance will absolutely suck all the balls' hi cygwin

feedmegin
Jul 30, 2008

Sapozhnik posted:

making it a pain in the rear end for an ihv to maintain a linux driver that is not part of the upstream project is not a bug, it's a feature. only nvidia has managed to swim against that tide and it's still a giant pain in the rear end for everybody to deal with.

Plenty more than them unfortunately, see also basically every embedded gpu manufacturer

JawnV6
Jul 4, 2004

So hot ...

Cybernetic Vermin posted:

the philosophy of kernel design often being reduced to "well, we have access to all memory so from here it is just as well we smear ourselves in poo poo and write a monolith in overly clever c and dumb-as-hell assembler" (in this type of conversation if only rarely in practice) is really outmoded security thinking, a case of the old approach of figuring that we'll build one inpenetrable barrier perfectly and attempting any other mitigations is a thoughtcrime undermining the one inpenetrable barrier.
they're still using overly clever c and dumb-as-hell assembler tho

luchadornado
Oct 7, 2004

A boombox is not a toy!

Cybernetic Vermin posted:

(or maybe there is a longer cycle still, i am only seeing these pieces of the chain)

sounds like you need blockchain

Notorious b.s.d.
Jan 25, 2003

by Reene

Cybernetic Vermin posted:

nbsd doing a bit of posting performance art, in derailing the pl thread about linux, the linux thread about rpgs, and, i presume, some games thread somewhere about programming languages (or maybe there is a longer cycle still, i am only seeing these pieces of the chain)

threads are merely the canvas for my art 💩

The_Franz
Aug 8, 2003

feedmegin posted:

Plenty more than them unfortunately, see also basically every embedded gpu manufacturer

mobile gpu drivers are generally complete trash, so i wouldn't count them as a success story

having a kernel that's more binary-blob friendly isn't going to suddenly make them not trash or even update more frequently because the problem is the vendors, not the os

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

pseudorandom name posted:

fork() is the number one reason why posix is garbage and more operating systems need the courage to acknowledge that fact and move on

please elaborate I have no idea what you mean by fork sucking

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Janitor Prime posted:

please elaborate I have no idea what you mean by fork sucking

it doesn't work well with threads at all, it's racy, it's a bad way to launch subprocesses because there's no way to control memory behavior, leading to things like the oom killer

BobHoward
Feb 13, 2012

The only thing white people deserve is a bullet to their empty skull

Suspicious Dish posted:

it doesn't work well with threads at all, it's racy, it's a bad way to launch subprocesses because there's no way to control memory behavior, leading to things like the oom killer

like so many other parts of unix, fork was good in its original context (the early 1970s, hackers having fun making an os for themselves) but isn't aging well

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
it's elegant only if you ignore everything else about operating system design. see also: plan 9

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Notorious b.s.d. posted:

the courage not to be compatible with the software that is already written

fork() is low level enough that you’ll mostly wrap it in real world use

those wrappers can just switch to posix_spawn(), as long as you also have enough extensions to cover the behaviors it doesn’t specify

the number of times you want an actual clone of a process is vanishingly small

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Janitor Prime posted:

please elaborate I have no idea what you mean by fork sucking

fork clones a process, including not just its file descriptors but its address space too

in large systems that work with a lot of subprocesses, this can be extremely expensive, and you wind up with hacks like forking once to exec a tiny binary (to throw away all that address space that was cloned) that then forks and execs a bunch of binaries

posix_spawn for all its warts is a great replacement because it creates a process anew, with a bunch of stuff set up for it however you request (especially with extensions), making it so much cheaper for the common case

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

BobHoward posted:

like so many other parts of unix, fork was good in its original context (the early 1970s, hackers having fun making an os for themselves) but isn't aging well

it really wasn’t, a spawn API would’ve been better even then

it was a cute hack to make process creation “copy on write” but it’s not a great tool even on something like a PDP-7 or PDP-11

there’s a good reason BSD added vfork()

Cybernetic Vermin
Apr 18, 2005

JawnV6 posted:

they're still using overly clever c and dumb-as-hell assembler tho

yeah, my complaining applies equally to most that favor microkernels, because they too have a really olden idea of the design space. apropos for the thread is mostly that better languages, associated primitives, and tools are obviously called for, and specifically the microkernel side has subsumed a lot of thinking about proper architecting but then also chained that work to a few failed core ideas.


BobHoward posted:

like so many other parts of unix, fork was good in its original context (the early 1970s, hackers having fun making an os for themselves) but isn't aging well

mostly it was good that it was quite light-weight, so a lot of the useless semantics it offered could just be ignored as they didn't cost much anyway. really though a lot of syscall design is akin to cisc instruction sets where they assume a lot of complexity to make things seem conceptually easy, where very very few programmers in reality ever call them, and they should probably always have been a more orthogonal collection of primitives. the windows 10 pico processes + pico providers (where process creation is basically just creating a memory map, you get nothing mapped in and no thread created, but you get hooked to a chosen kernel-space "provider" which controls how those things can then happen) is a pretty neat model and should probably have been in there day 1.

pseudorandom name
May 6, 2007

Janitor Prime posted:

please elaborate I have no idea what you mean by fork sucking

a lot of the things that make Unix a broken shitshow are boneheaded design decisions that got codified into mandatory standard behavior or deliberate design choices made to keep backward compatibility with Unix's stone age origins

e.g. there's nothing inherently wrong with signals, Windows demonstrates how you can implement them properly -- SEH behaves like C++ exceptions and APCs don't have unmanageable global handlers and only get delivered at specific points when the application is blocked waiting for event delivery

or ELF symbol lookup semantics, for example. ELF dynamic linking was designed to be a drop in replacement for static linking behavior, and the end result is you get random symbols name collisions from random libraries. OS X started out with this idiocy, but they switched to two-level symbol namespaces almost immediately. there's no reason for Linux to be stuck with it other than laziness and inertia

fork on the other hand is a fundamental design flaw. there's no way to design a quality operating system that has fork, because fork absolutely requires you to do stupid things. e.g. if your 200 GB database process wants to create a child process, it has to fork and then exec. when it forks, you have two choices -- either you duplicate all 200 GB of your database, which requires you to have 400 GB of RAM in your server (and you can cheat with COW to make this "fast" because you only end up duplicating a handful of pages, but the 400 GB bookkeeping requirement is still there) or you lie and implement overcommit, in which case you've designed your operating system around heuristically killing random processes to free memory when your lies catch up with reality and you run out of RAM. either way is a lovely design.

and that's just the fundamental inescapable problem with fork, Unix has codified a bunch of boneheaded design decision on top of fork related to what else gets duplicated into the child process along with the address space and basically everything is a buggy mess as a result

Lutha Mahtin
Oct 10, 2010

Your brokebrain sin is absolved...go and shitpost no more!

Athas posted:

It would be great if I could mount dubious USB filesystems in userspace, but for the big filesystems (like /) a crash is just as bad as a total kernel panic, because it's not like I'd be able to continue working, and I might lose data. Same with a crash in the display driver.

isn't this what libfuse does, for filesystems?

also i think the display driver thing is actually in use by multiple OSes. they kill and restart the display driver if it starts acting up

Soricidus
Oct 21, 2010
freedom-hating statist shill

pseudorandom name posted:

and that's just the fundamental inescapable problem with fork, Unix has codified a bunch of boneheaded design decision on top of fork related to what else gets duplicated into the child process along with the address space and basically everything is a buggy mess as a result

correlation/causation much? pretty sure everything would be a buggy mess even if the os was not a pos, op

Sapozhnik
Jan 2, 2005

Nap Ghost
posix is a security nightmare because everything lives in a global namespace and access control within that global namespace is discretionary (i.e. if a process has access to a particular resource then it is difficult in general to prevent it from sharing that access with an unauthorized process). containerization and namespacing are hacks to sort of fix that in linux while retaining posix compatibility.

a non-backward-compatible os designed today would be capabilities-based: every process in the system is started up by a supervisor process that passes it the capabilities ("file descriptors") to do its job and there's no global namespace for it to nose around in or exfiltrate things through. a web application that listens on http, talks to a db server, and writes logs would have no way to even get to the filesystem if it were compromised. all it can do is dequeue incoming stream connections, open database connections, and emit logs.

https://bus1.org/bus1.html

imagine if this was the only system call interface that existed and you wouldn't be too far off

spiritual bypass
Feb 19, 2008

Grimey Drawer
that sounds like a nightmare of incompatible interfaces but also pretty cool

pseudorandom name
May 6, 2007

Sapozhnik posted:

posix is a security nightmare because everything lives in a global namespace and access control within that global namespace is discretionary (i.e. if a process has access to a particular resource then it is difficult in general to prevent it from sharing that access with an unauthorized process). containerization and namespacing are hacks to sort of fix that in linux while retaining posix compatibility.

a non-backward-compatible os designed today would be capabilities-based: every process in the system is started up by a supervisor process that passes it the capabilities ("file descriptors") to do its job and there's no global namespace for it to nose around in or exfiltrate things through. a web application that listens on http, talks to a db server, and writes logs would have no way to even get to the filesystem if it were compromised. all it can do is dequeue incoming stream connections, open database connections, and emit logs.

https://bus1.org/bus1.html

imagine if this was the only system call interface that existed and you wouldn't be too far off

you just described a microkernel

mystes
May 31, 2006

pseudorandom name posted:

you just described a microkernel
Uh, wasn't that exactly what this discussion was about?

pseudorandom name
May 6, 2007

mystes posted:

Uh, wasn't that exactly what this discussion was about?

yeah, but looping back around to the beginning but citing Bus1 as the example is an odd choice

Sapozhnik
Jan 2, 2005

Nap Ghost
microkernel or not is an implementation detail. hurd is a microkernel wank exercise and it also implements posix with all the badness that entails.

Adbot
ADBOT LOVES YOU

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

JawnV6 posted:

"oh my gosh, latency matters??" - every microkernel ever

At least as far as academic microkernels go, this is probably why synchronous IPC benchmarks (measured in clock cycles OF COURSE) are the single differentiating factor

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply