klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<zid> yea I imagine the actual HAL part is really thin, but idk how that translates to rust's object guarentees
<zid> if you're actually hooking it up to some real rust
<zid> and not just some procedural ioport twiddling
<bslsk05> ​thepowersgang/rust_os - An OS kernel written in rust. Non POSIX (41 forks/598 stargazers/NOASSERTION)
<zid> unsafe -> ??? -> proper rust object :P
DanielNechtan is now known as bombuzal
tacco has quit [Remote host closed the connection]
wootehfoot has quit [Read error: Connection reset by peer]
ZombieChicken has joined #osdev
Burgundy has left #osdev [#osdev]
<geist> oh cool thanks. i'm especially interested in how the IRQ mechanism works and how preemption works in this case
<mrvn> doesn't rust have signals?
<geist> Mutabah: ah i see so eventually one you plumb it out the IRQs all trigger a worker thread?
<geist> ie, irq_worker() Kernel/Core/irqs.rs?
<Mutabah> Yeah
<Mutabah> it's the lazy way :)
<geist> as far as i can tell that seems to be the defacto solution on all rust things i've seen
<geist> presumably because its hard to do much more work outside of a thread context like that
<geist> this is definitely teh cleanest one i've looked at. i can learn a lot from this. thanks!
<Mutabah> Same applies to any system really... you're really limited to what's sound/good to do in IRQ context
<Mutabah> :)
<Mutabah> I try for clean over fast
<geist> yah it's hard enough in C to be carefula bout what you can/cant do in a IRQ
<geist> haha
<geist> yeah that's precisely what i'm looking for. a good solution, not just a cheesy or fast or whatnot
<mrvn> extra threads basically reduce the problem to each thread marking when it can't be scheduled while in some critical section.
<geist> is the irq_worker in this case special, or does it get sheduled like any othe thread?
<mrvn> high prio?
<bslsk05> ​github.com: rust_os/irqs.rs at cab77bf3b522b707ca5841155cfdbf66a8540e20 · thepowersgang/rust_os · GitHub
<geist> note this is all fine, i'm just trying to grok everything here
<Mutabah> really, it should be high priority - but hasn't broken yet :)
<Mutabah> Beware - there's some legacy code, some of this was written before 1.0
<Mutabah> hence some of the macros in place of const functions
<geist> yah duly noted
gog has quit [Ping timeout: 268 seconds]
catern has quit [Remote host closed the connection]
[itchyjunk] has quit [Ping timeout: 255 seconds]
[itchyjunk] has joined #osdev
carbonfiber has quit [Quit: Connection closed for inactivity]
<heat> thepowersgang :DD
<heat> i wonder what happened to him hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm :thinking emoji:
<Mutabah> ha. ha.
isaacwoods has quit [Quit: WeeChat 3.7.1]
Matt|home has quit [Quit: Leaving]
<klange> Mutabah: when are you going to set up ci builds
<heat> set them up but don't publish images
<heat> it's the new trendy osdev thing
<kazinsal> ah, the serenityos way
<heat> *cough cough* fuchsia
<kazinsal> aka how to be a foss weirdo who discourages people from trying your software who aren't other foss weirdos
<Mutabah> klange: I had travis originally, haven't switched to github actions yet
heat has quit [Ping timeout: 252 seconds]
<sbalmos> it's a rite of passage. we can prove automagically that it builds, but we won't tell you how. you need to figure out the build yourself to unlock the power and mystique of this new wonderful OS
<netbsduser> kazinsal: let's be frank, only foss weirdoes will ever try most of our OSes
<zid> imagine getting to the point someone might trying it
<zid> try*
<sbalmos> I try to run most of them, just to see what happens
<zid> I need to add triple buffering to mine somehow
<zid> I don't think it should be that hard though
<klange> I like to keep a collection.
<sbalmos> I've been intrigued by some of the newer terminal apps coming out
<kof123> i still like recursos or inceptos: only consists of tools to build other os
<kof123> *the idea of
<klange> plz send me isos ༼ つ ◕_◕ ༽つ
<sbalmos> ISOs, how quaint. so 2000s.
<klange> still the gold standard for installation and live media; even a lot of DVD images are ISO9660 instead of UDF, and even the ones that are UDF still end up with ISO as their file extension because reasons
<klange> let's see what's in my old download dump... I've got a... skift, kolibri, several helenoses, haiku, hurd (debian, 2015), greenteaos, u365, norost, nameless, ReactOS, plan9, various redoxes, sortix, glidix, spartan, dgos, mona, ghost, silcos, minix R3.3.0, lyre, visopsys, exscapesos...
JudgeChicken has joined #osdev
<JudgeChicken> How is HURD these days?
ZombieChicken has quit [Ping timeout: 255 seconds]
<klange> Among other things, still 32-bit.
<klange> Also Debian still recommends 1) using a preinstalled disk image, and 2) obviously, running it in a VM and not on real hardware
xenos1984 has quit [Read error: Connection reset by peer]
JudgeChicken is now known as zigggggy
zigggggy is now known as ZombieChicken
<klange> https://klange.dev/s/Screenshot%20from%202022-11-12%2011-52-40.png 2021.08 release seems to be doing okay, their disk image comes with IceWM; I had an XFCE setup going on a test VM for one of the previous releases
JudgeChicken has joined #osdev
chartreuse has joined #osdev
ZombieChicken has quit [Ping timeout: 255 seconds]
xenos1984 has joined #osdev
ZombieChicken has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
JudgeChicken has quit [Ping timeout: 255 seconds]
aoei[TNNT] is now known as Stella[OotC]
ZombieChicken has quit [Ping timeout: 255 seconds]
<geist> yah minix3 had some attention a few years ago but then fell silent again
<geist> guess it's just whether or not some grad students are looking at it
<geist> klange: question: do you use github actions (or any other mechanism) to do some sort of unit testing?
<geist> i should finally do something like this, but aside from scraping the serial output i'm not sure if there's a more clever way that's not too involved
<geist> ie, driving the tests in the qemu image and getting output
<klange> no test suite for the OS at the moment, just builds; Kuroko's got one
<geist> yah. obviously could do something like connect to it with a socket, but i'd like to be able to have basically no assumptions of hardware, so i can emulate more or less anything (even stuff without a nic, etc) and stll run unit tests
<geist> kk. *probably* will just hack something together in python or whatnot to drive the serial console and do some scraping of the test output
<klange> I had a thing for that a looong time ago.
ephemer0l has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<klange> the firefox packages on Debian Hurd are broken, and I can find no other browsers even in the repo besides dillo
<klange> Also the scroll wheel doesn't work in anything, so I assume Hurd's ps/2 mouse driver just doesn't support it?
<mrvn> links, w3m?
<klange> I'll take dillo over those.
<klange> I found konqueror was available but doesn't start
<klange> but might just be something dumb like a missing dbus service
<mrvn> links2 has gfx but I'm not sure if hurd supports that
<klange> it does have X :P
<mrvn> it's displaying images in your terminal
<klange> I believe links uses dirty hacks to find x windows for host terminal
<klange> that or w3m does
<klange> I read the relevant code at one point, it was hilarious
<bslsk05> ​'Backyard Squirrelympics 3.0- The Summer Games' by Mark Rober (00:23:14)
<klange> links might have been the one that just directly supported Linux fbdev interfaces
<klange> with the resurgance of sixel in the last few years someone probably hasw something to just shit out webkit to that...
<klange> konqueror segfaults in KService::desktopEntryName() lol
divine has quit [Read error: Software caused connection abort]
divine has joined #osdev
ZombieChicken has joined #osdev
<kof123> that one does X graphics http://links.twibright.com/features.php and atheos apparently
<bslsk05> ​links.twibright.com: Twibright Labs: Links - Features
XgF has quit [*.net *.split]
sbalmos has quit [*.net *.split]
XgF has joined #osdev
sbalmos has joined #osdev
<klange> It is indeed w3m that does the gods awful hacks to find the X11 window for the terminal, with this lovely diagram for how it finds the actual text area for different terminals: https://github.com/tokuhirom/w3m/blob/master/w3mimg/x11/x11_w3mimg.c#L697-L739
<bslsk05> ​github.com: w3m/x11_w3mimg.c at master · tokuhirom/w3m · GitHub
<bslsk05> ​github.com: w3m/x11_w3mimg.c at master · tokuhirom/w3m · GitHub
<klange> It looks for the largest child window.
<klange> Or rather, one that looks like it's most of the total window
outfox has quit [*.net *.split]
Rubikoid has quit [*.net *.split]
Ram-Z has quit [*.net *.split]
dennisschagt has quit [*.net *.split]
freeload7 has quit [*.net *.split]
identitas has quit [*.net *.split]
dennisschagt has joined #osdev
Rubikoid has joined #osdev
Ram-Z has joined #osdev
outfox has joined #osdev
JerryXiao has quit [Quit: Bye]
identitas has joined #osdev
JerryXiao has joined #osdev
srjek|home has quit [Ping timeout: 268 seconds]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
wootehfoot has joined #osdev
Matt|home has joined #osdev
Matt|home has quit [Ping timeout: 260 seconds]
ThinkT510 has quit [Quit: WeeChat 3.7.1]
ThinkT510 has joined #osdev
ZombieChicken has quit [Quit: WeeChat 3.6]
heat has joined #osdev
poisone has joined #osdev
heat has quit [Ping timeout: 260 seconds]
kklimonda has quit [Read error: Software caused connection abort]
kklimonda has joined #osdev
GeDaMo has joined #osdev
<mrvn> klange: WMs potentially add lots of sub windows for the decorations and the terminal might have menus and buttons that are sub windows too. Hard to find the window that is actually the text area.
hl has quit [Read error: Software caused connection abort]
hl has joined #osdev
tacco has joined #osdev
hl has quit [Quit: ZNC - https://znc.in]
hl has joined #osdev
<ddevault> of interest to this channel: https://drewdevault.com/2022/11/12/In-praise-of-Plan-9.html
<bslsk05> ​drewdevault.com: In praise of Plan 9
FireFly has quit [Read error: Software caused connection abort]
FireFly has joined #osdev
<bslsk05> ​en.wikipedia.org: Plan 9 from Outer Space - Wikipedia
<mrvn> .oO(Maybe also the first film starring a dead actor as of the making of the film)
<mrvn> FYI: "The film's title was the inspiration for the name of Bell Labs' successor to the Unix operating system. Plan 9 from Bell Labs was developed over several years starting in the mid-1980s and released to the general public in 1995."
<klange> 5 minutes to build from source? too slow, my 12-year-old laptop does toaru in under a minute
<klange> gods, my thinkpad really is that old... and still a perfectly capable machine, if a bit heavy - but it was 'a bit heavy' 12 years ago, too
Stella[OotC] is now known as theWeaver
<ddevault> 9front probably has a few more things in there than toaru
<ddevault> probably faster now that they removed the python port
<klange> I added my own Python... and it is the slowest single part of the build, though still much faster to build than a CPython.
<ddevault> and to be honest, performance is not one of plan 9's strongest points
<ddevault> the 9P abstraction is a bit expensive
<ddevault> and they have their own compiler, which is not as optimized as gcc et al
jafarlihi has joined #osdev
<jafarlihi> Whcih makes more sense for creating LALR1 tables? Creating LR0 automaton and then adding lookaheads or creating LR1 automaton and then merging states?
<klange> This is not a proglang channel.
gog has joined #osdev
jafarlihi has quit [Quit: WeeChat 3.7.1]
<klange> 9front appears to have around 2m code lines compared to toaru's ~120k. Whether it has 16x the functionality is dubious.
<klange> for an OS whose maintainers and adherents are so into minimalism, having Doom in the core source tree is an bold choice
<klange> but then so is the very important core library file of Terry S. Davis quotes
<gog> rest in peace
<poisone> rly
epony has quit [Ping timeout: 268 seconds]
gildasio has quit [Ping timeout: 255 seconds]
gildasio has joined #osdev
[itchyjunk] has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
poisone has quit [Read error: Connection reset by peer]
cyberbanjo has joined #osdev
<ddevault> 9front is not exactly a minimal approach to plan 9 tbqh
<ddevault> as far as 9 stuff goes it's pretty bloated
<ddevault> and full of memes
<ddevault> but it has the broadest hardware support and active maintenance, so
poisone has joined #osdev
epony has joined #osdev
Burgundy has joined #osdev
<netbsduser> i tend to be more interested in "everything is a file descriptor" (in other words, the capability model) than "everything is a file"
epony has quit [Ping timeout: 268 seconds]
<netbsduser> my opinion was sealed when i ported systemd to netbsd (and thence to the other BSDs including macOS). i reduced over 1000 lines of code dealing with the procfs with 250 lines of code dealing with the subtly-different kvm/sysctl interfaces to process information on the BSDs
<mrvn> how is a FD different from a file?
<netbsduser> i am still not happy with the kvm/sysctl interfaces since they are also racy. i would much rather that FreeBSD's procdesc (a file descriptor representing a process) take over, and then query based on that procdesc rather than by a name which might've been reused
epony has joined #osdev
<netbsduser> mrvn: a file is a name in a global namespace. you're tied to a tricky security model and to the problems of addressing by name instead of by a reference to an object
<mrvn> open turns a path into a filedescriptor. I'm not sure where linux would have files.
<netbsduser> for example: if you want to do sane, sensible, and consensual things like provide access to a single file for some program which is otherwise unprivileged, you need to either mess around with permissions dynamically, or you have to open it to yield an FD and then send it to the process that you want to authorise access to it for
<mrvn> or chroot or pass a descriptor to an otherwise unreachable directory
<mrvn> I don't see where BSD is different there.
<mrvn> A path can change to different files and open turns it into a FD that never changes
<mrvn> I think your problem is more the messed up interface procfs has.
<netbsduser> mrvn: i do praise BSD kvm/sysctl/libproc for being less awful to interface with than procfs, but the race remains since i am looking up processes' information by name (pid)
<netbsduser> FreeBSD on the other hand has a pdfork() syscall which forks off a process and provides you a procdesc, an FD representing that process, rather than its PID
<zid> nod winapi is the same, it's pretty handy
<mrvn> yeah, fork should give you a process handle
<bslsk05> ​'"An IPC Language For The Whole Operating System" by Ian McKellar (Strange Loop 2022)' by Strange Loop Conference (00:45:08)
<GeDaMo> "Fuchsia Interface Definition Language (FIDL) that is used to define the API and ABI boundaries between all the different parts of the system - from the kernel syscalls and driver module APIs to IPC between system services and end user GUI applications."
srjek|home has joined #osdev
bgs has joined #osdev
<ddevault> mrvn: the difference is that a file descriptor can come from anywhere, such as a socket, and in the case of files it can outlive the file path on disk (keeping a reference to the inode)
<ddevault> a file is "thing on the filesystem"; a file descriptor is "a handle for some kind of I/O which may or may not involve a file"
<ddevault> fd is the golden hammer of unix
xenos1984 has quit [Read error: Connection reset by peer]
<epony> nope
<epony> it's the fork-exec model
<epony> file descriptors are for kdis
<epony> enter the TOCTOU realm of metastability
<epony> the gift of streams
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
xenos1984 has joined #osdev
cyberbanjo has quit [Ping timeout: 260 seconds]
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
Sos has joined #osdev
isaacwoods has joined #osdev
heat has joined #osdev
<heat> fyi clone can also return pidfd these days
Sos has quit [Quit: Leaving]
wootehfoot has quit [Quit: Leaving]
netbsduser has quit [Quit: Leaving]
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
xenos1984 has joined #osdev
* geist yawns
<heat> bonk
<heat> straight to sleepy jail
<kof123> re: "everything is a file" "header-free textual data that connects well with other programs" that is just to say, there is an fd or filename to obtain a handle to something, but there is another component: what type of data is inside that "file" -- whether it be some special device file, a regular file, or whatever else. i am not arguing either way for fds or filenames, but there is another component: what type of data is being se
<kof123> nt/received inside that file? http://harmful.cat-v.org/cat-v/unix_prog_design.pdf
<kof123> funny enough it mentions cp/m IIRC PIP command as an alternative, neither better nor worse, but says is another approach
<kof123> then IMO you end up with does +b do anything or not
<kof123> are these "binary" "files" or "text" "files"
<kof123> again, not arguing either way, but the filename or fd is just one component of the "File" equation IMO
mahk has quit [Ping timeout: 246 seconds]
<kof123> or: unix predates unicode. i think there are arguments made within a particular "overton window"/time period, so all i am really saying is there were "files" before unix/on other systems, "files" before unicode, "files" now on unix and elsewhere, etc. just throwing in a vote to beware the conway's law -- when person a uses "file" they mean b, when person c uses "file" they mean "d", etc. in that sense "everything is a file" i think i
<kof123> s superficial unless it goes into these details
<kof123> same with "text" of course
dude12312414 has joined #osdev
FreeFull has joined #osdev
elastic_dog is now known as Guest6159
Guest6159 has quit [Killed (iridium.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<Ermine> "connect 127.0.0.1!80" bothers me a bit. Such stuff forces me to do string formatting and involves parsing at driver side.
poisone has quit [Read error: Connection reset by peer]
<gog> hi
<Ermine> Hi gog, how are you?
<gog> i'm well Ermine how you
<heat> that's not very alpha male energy never give up never back down wake up at 5am trillionaire grindset of you
<gog> good
<Ermine> gog: I'm fine too
<gog> i want to be omega female no energy always give up back down constantly wake up at noon broke and don't care
<heat> evil david goggins
rwxr-xr-x has joined #osdev
<Ermine> No time to nap, have things to do.
<gog> meowmeowmewow
dude12312414 has joined #osdev
<heat> you should be on the next cats movie
<heat> fuck james corden
* sham1 yawns
<gog> yes
<gog> all catgirl cast
<sham1> Damn it geist, you infected me with that /me
* heat gets infected
* kof123 pets the alpha omega miao
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
Matt|home has joined #osdev
rwxr-xr-x has quit [Ping timeout: 268 seconds]
GeDaMo has quit [Quit: I'm going to show these people something you don't want them to see. I'm going to show them a world without you.]
bgs has quit [Remote host closed the connection]
mahk has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
epony has quit [Quit: QUIT]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
FreeFull has quit []
epony has joined #osdev
heat_ is now known as heat
tacco has quit [Remote host closed the connection]
wootehfoot has joined #osdev