• 0 Posts
  • 28 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle





  • It’s weird because usually the people writing the expressions want to communicate clearly, and stuff like 1/2x is not immediately clear to everyone, so they write the 1/2 as a fraction.

    The same expression on both sides of the division sign only reduce to one if they actually bind to the division sign, which is rarely an issue, but that is exactly the thing that is in question here. I think it’s clear that 1 + 1/1 + 1 is 3, not 1, even though 1+1 = 1+1.

    But as you said, of course, the evaluation order is just convention, you can just as well write everything in https://en.m.wikipedia.org/wiki/Reverse_Polish_notation


  • your first line is correct, but while it looks like 1 (and it might be under different conventions), evaluating according to standard rules (left to right if not disambiguated by pemdas) yields

    2(2+2)/2(2+2) = 2(4)/2(4) = 2*4/2*4 = 8/2*4 = 4*4 = 16

    Using implicit multiplication in quotients is weird and really shouldn’t happen, this would usually be written as 8/(2*(2+2)) or 8/2*(2+2) and both are much clearer

    Your second argument only works if you treat 2(2+2) as a single “thing”, which it looks like, but isn’t, in this case








  • Almost all programs use both 32bit and 64bit integers, sometimes even smaller ones, if possible. Being memory efficient is critical for performance, as L1 caches are still very small.

    Garbage collection is a feature of programming languages, not an OS. Almost all native linux software is written in systems programming languages like C, Rust or C++, none of which have a garbage collector.

    Swap is used the same way on both linux and windows, but kicking toolbar items out of ram is not actually a thing. It needs to be drawn to the screen every frame, so it (or a pixel buffer for the entire toolbar) will kick around in VRAM at the very least. A transfer from disk to VRAM can take hundreds of milliseconds, which would limit you to like 5 fps, no one retransfers images like that every frame.

    Also your icon is 1.1Mbit not 1.1MB

    I have a gentoo install that uses 50MB of ram for everything including its GUI. A webbrowser will still eat up gigabytes of ram, the OS has literally no say in this.




  • Man kann natürlich auch einen monolithischen wayland compositor bauen, was wayland wirklich unixoider in dem sinne macht ist ein grundsätzlich moderneres verständnis von rendering. Wenn man einen X server implementieren will, muss man so spaß wie “zeichne eine krumme gestrichelte linie” supporten. Wayland verteilt im wesentlichen nur OpenGL/Vulkan context state und lässt die applications dann selber malen, was heutzutage eh alle machen.

    Den einzigen nachteil den ich mit sway im vergleich zu i3 festgestellt habe ist dass es gar keine lust auf funktionieren hat wenn du eine nvidia gpu hast, die binary driver sind völlig raus und selbst mit nouveau braucht man ne ganze menge glück. Und screensharing braucht deutlich mehr einsatz von magie.


  • Noch zu der Frage wieso es so wenige wayland wms gibt (ist etwas komplizierter, aber die zusammenfassung ist folgendes):

    Bei X hat der X server die meisten aufgaben übernommen, von dem es nur eine wesentliche implementation gibt, X.Org, und der window manager managed wirklich nur fenster. Das erlaubt sehr einfache und kleine implementationen, suckless’ dwm ist beispielsweise nur ~3000 Zeilen simpler C-code (https://git.suckless.org/dwm/files.html). Bei wayland gibt es so eine standard server side an sich erstmal nicht, es wird nur ein protokoll spezifiziert, mit dem clients mit dem compositor kommunizieren können. Jeder compositor (nicht mit X compositorn verwechseln, die tun andere sachen) muss also alles von window management bis zum tatsächlichen rendering übernehmen, wie der die aufgaben aufteilt ist jeder implementation selbst überlassen. Das macht waylands server-side implementierungen erst mal viel umfangreicher und komplexer, erlaubt aber auch mehr features. Falls man nur einen window manager basteln will, kann man das oben schon erwähnte wlroots verwenden, eine C library, die sich um die ganzen grundlegenden aufgaben größtenteils kümmert (https://gitlab.freedesktop.org/wlroots/wlroots). Seitdem es die gibt gibt es eine reihe mehr wl compositors, aber selbst damit ist es noch komplizierter als X wms waren.


    • DEs integrieren neben window management auch andere tools wie file manager usw
    • irgendjemand muss sagen wo die fenster auf dem bildschirm auftauchen sollen, input an eins weitergeben etc
    • ja, die windowmanager die in DEs verwendet werden verhalten sich “normal”. Tiling wms brauchen etwas gewöhnung, sind aber auch nicht kompliziert. Du kannst auch tiling wms mit KDE und so verwenden, übrigens (weiß aber nicht wie gut das funktioniert)
    • falls du einen standalone wm verwenden willst, musst du die settings schon in eine config schreiben, zumindest bei allen die ich kenne. Dasist aber auch sehr gut dokumentiert und unproblematisch. Terminal brauchst du nur falls dein texteditor dadrin läuft.
    • ich verwende seit jahren sway, was eine nette wayland tiling wm ist. Hyprland sieht fancier aus, scheint auch gut zu funktionieren. Solang man keine nvidia gpu hat, mit denen deren gemeinsames backend wlroots inkompatibel ist, funktioniert auch alles problemlos. X-only clients laufen in xwayland.
    • probier hyprland einfach mal aus, dann weißt du obs was für dich ist
    • der hauptsinn einer tiling wm ist, dass sich die fenster nicht die ganze zeit komisch überlappen sondern man alles was in einem workspace liegt gleichzeitig sehen kann. Das ganze effizient mit keybinds umzuordnen ist nur ein bonus, man kann z.b. sway auch fast nur mit maus bedienen wenn man das aus irgendeinem grund will. Ich empfehle aber dringend auch die tastatur zu verwenden, das macht alles viel angenehmer