<geist>
so the two drives (dual 381MB) are sitting on that bus, which looks a lot like scsi but isn't
<geist>
but it's not popular enough that anyone has built an emulator for it. dunno if it's documented enough
<nikolapdp>
heh
<geist>
oh actually it was lated, 1988. surprising
<nikolapdp>
well you could try documenting it :P
<nikolapdp>
also didn't you say your pdp used like 80w of power at most
<nikolapdp>
that's not much
<geist>
the trick was, and it's kinda neat, is it's via this bus that you'd chain multiple vax boxes together to form a cluster
<geist>
so basically inside the box is a controller, two disks chained tobegther, and then it goes out to a SCSI looking connector that you run over to another box
<geist>
so i think the idea is with DSSI that anything can be a master node or something
<geist>
i think you can kinda do the same thing with SCSI
<nikolapdp>
can you?
<geist>
you can certainly communicate between two machines with SCSI with the proper controllers and whatnot, but i dont know if scsi has the capability to have more than one master initiator node
<nikolapdp>
interesitng
<geist>
so one of them may need to act like a slave device
<geist>
looks like the DSSI stuff has some sort of notion of a distributed bus grant thing
<geist>
so i thik that's the idea why they were using it as a generic bus to join multiple nodes and share the storage between them
<geist>
presumably any of the main nodes can directly talk to any disk, provided they have the go ahead from the other nodes
<geist>
the vms clustering stuff had a distributed locking scheme so i think myltiple nodes can access the same FS
<geist>
the 3800 i have actually was clearly part of a node, since it has a little sticker on it that says 'CPU A'
<geist>
s/node/cluster
xenos1984 has quit [Read error: Connection reset by peer]
<Matt|home>
is there some (preferably) open sourced big code base that's professional/high standard enough that i can take a look at?
<nikolar>
What for Matt|home
<Matt|home>
im having a really, really, -really- hard time finding good resources on C++, so im really hoping that i'll be able to pick up the language by looking at other code. e.g. im having trouble figuring out why my simple struct code won't compile now. but i can't read a codebase that's using lazy or awful coding practices, i won't know it's bad til it's too late
<Matt|home>
im looking at something called the windows internals book right now
<Matt|home>
but that's not like a github repo or anything
<nikolar>
Isn't that book from like 1995
<Matt|home>
the newest version is 7th edition which came out in 2017 i think? idk. website has 6th edition sample chapter
<mjg>
kind of late to learn c++
<mjg>
rust it
<Matt|home>
...
<Matt|home>
no chance.
<Matt|home>
not yet anyway
X-Scale has joined #osdev
<nikolar>
mjg is that sarcasm
<netbsduser>
Matt|home: an OS codebase or a C++ codebase?
<netbsduser>
windows kernel is almost all C in any case
<Matt|home>
C++ codebase specifically
<Matt|home>
just one with a relatively high standard
<Matt|home>
not like, nintendo's crunch deadline in the 90s: "get it done with 2kb or we slaughter your whole family" -_-
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 264 seconds]
bauen1 has joined #osdev
X-Scale has quit [Ping timeout: 250 seconds]
<kof673>
professional == gets paid. has nothing to do with quality > engaged in a specified activity as one's main paid occupation rather than as a pastime.
<kof673>
this is supposedly the "journalism" definition too. "paid" also can vary from "did work"
<kof673>
so yes, those are pros :D > "get it done with 2kb or we slaughter your whole family"
heat has quit [Remote host closed the connection]
heat has joined #osdev
Turn_Left has joined #osdev
<kof673>
the secret to "law" is never say which definition you mean :D
<bslsk05>
github.com: src/sys/kern/kern_smr.c at master · openbsd/src · GitHub
gcoakes has quit [Ping timeout: 268 seconds]
eddof13 has joined #osdev
gcoakes has joined #osdev
<heat>
netbsduser, fwiw "almost all C" is probably a bit of an overstatement
<heat>
they had to add tidbits of C++ support into windows dtrace
<nikolapdp>
that means nothing really
<nikolapdp>
it could be 1% c++ or 50%
<nikolapdp>
you can't know
<heat>
nothing means anything, just saying that "almost all" is probably an overstatement
<heat>
knowing microsoft
<heat>
and knowing what they factually did for a tool that's supposed to help trace core kernel and system bits
<nikolapdp>
you'd need to add c++ support if you have one c++ file in the kernel
<nikolapdp>
that was my point
<nikolapdp>
that tells you nothing
<heat>
you do have a point but if it's a random system corner they can't give two shits about, they would possibly ignore it
gcoakes has quit [Ping timeout: 246 seconds]
<nikolapdp>
my whole point is that we have no clue
<nikolapdp>
we can just guess
<heat>
in any case none of this matters because onyx is the best
<heat>
or, if you're weird, linux is the best
<nikolapdp>
unless someone's work with windows code and can say one way or the other
<nikolapdp>
KERNAL
<heat>
this is where nt's really weird arch would probably come into play
<nikolapdp>
what do you mean by "this"
<heat>
like, the win32k subsystem is just a separate driver, could be in fortan for all they care
<heat>
no tight integration with the really core stuff is required
<nikolapdp>
yeah guess so
* Ermine
installs arch
* Matt|home
grabs his keyboard and smashes it into his head
<Ermine>
Matt|home: don't
* Matt|home
grabs Ermine's shirt and screams into it
<Ermine>
Matt|home: are u ok
<Matt|home>
mh.
<Matt|home>
u.
<nikolapdp>
Ermine he's learning c++
<nikolapdp>
it's only natural
<Ermine>
oh
<kof673>
i was not discouraging the mythical search for quality, "like from like" just forked tongues abound "it is everywhere, it is everything" :D
hwpplayer1 has joined #osdev
eddof13 has quit [Quit: eddof13]
eddof13 has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 252 seconds]
eddof13 has quit [Quit: eddof13]
dalme has quit [Read error: Connection reset by peer]
eddof13 has joined #osdev
<Matt|home>
wow. i feel like i just woke up from the matrix. the really mediocre matrix with a lot of glitches and where everything has kind of an annoying sepia tone filter that occasionally flickers
goliath has joined #osdev
gcoakes has joined #osdev
dalme has joined #osdev
<kof673>
you are asking the impossible...that quality outweighs money :D
<kof673>
it might survive for a short while, in isolated pockets :D
op has quit [Remote host closed the connection]
<kof673>
it would have to be some code that was sheltered and brought up in seclusion :D
<heat>
bluepilled c developer vs woke redpilled c++ developer
<heat>
"the language is bad i just use a subset" fucking based
<nikolapdp>
heat and his delusions
<Ermine>
isn't c++ too vast to not be used as a subset?
<heat>
uhhhhh
<nikolapdp>
Ermine basically
<heat>
i'm sure you can devise a project that uses every single c++ feature
<nikolapdp>
why would you though
<heat>
idk
<nikolapdp>
lel
<Ermine>
there are schools of thoughts on how c++ should be used I think
<Ermine>
I.e. there are people that think that c++ should be made on the basis of templates iirc
<heat>
i think we should use c++ as a weapon of war against our enemies
<Ermine>
That's what my friend which listens to various lectures says
<nikolar>
Luckily my uni didn't do that
<nikolar>
But we didn't do that much of c++ either
<GeDaMo>
The use of C++ probably contravenes arm limitation treaties :|
<heat>
Ermine, you definitely have constexprpilled people
josuedhg has joined #osdev
<Ermine>
that friend of mine doesn't use constexprs
<heat>
then the OOP guys, the ranges guys, the C guys, the functional programming guys
<heat>
the operator overloading fans, the operator overloading haters, the exception fans, the exception haters
<Ermine>
If I was studying at CS faculty I'd definitely have functional programming guys
<nikolar>
heat and all combinations of those
<heat>
absolutely
Left_Turn has joined #osdev
<Ermine>
People I talk with are mostly C and sometimes C++98 people, but it's due to how my faculty teaches programming
<heat>
that's terrible but par for the course in uni
Turn_Left has quit [Ping timeout: 240 seconds]
netbsduser has joined #osdev
<Ermine>
And, actually, most of them didn't go to IT
josuedhg has quit [Ping timeout: 250 seconds]
<Ermine>
When your first language is C, you won't have much motivation to continue
<netbsduser>
heat: a slight exaggeration i think it is fair to say
<Matt|home>
pffffffffftadfxxxxxx.......... anyone here work/worked in an office job, preferably for some computer stuff?
<netbsduser>
an NT kernel developer reported to the discord that there are some C++ components
<Ermine>
I have leaked XP sources, should I check?
<heat>
no
<netbsduser>
namely the store manager, which despite its name does not manage a supermarket, but rather "optimises memory use" or something to that effect
<heat>
see, saved you some legal troubles
<heat>
netbsduser, the superfetch thing?
<Ermine>
as in "can't send patchen to reactos?"
<netbsduser>
heatd: its responsibilities apparently include memory compression and page deduplication, i don't know what else, i speculate it might try to do page combining?
<Matt|home>
Ermine - hey you taught coding right?
<heat>
no d here, just heat
<Ermine>
Matt|home: no
<heat>
not daemonized
<Matt|home>
;_; did i
<netbsduser>
Ermine: funny you mention this
<Matt|home>
<Ermine> People I talk with are mostly C and sometimes C++98 people, but it's due to how my faculty teaches programming <-- oh sorry, thought you were a teacher
<Matt|home>
tired
<Ermine>
happens
<heat>
netbsduser, *shrug*. btw do you know anything about how windows does working sets and page replacement? it's a little weird coming from UNIX
<Ermine>
get some rest
<Matt|home>
can't
<netbsduser>
heat: yes, i know a decent amount about it. there is basically two levels of replacement
<Matt|home>
what's an average amount of time for someone to learn a new coding language.. either presuming no/a little/a lot of previous experience..
<netbsduser>
process-locally (used to be by FIFO, now it periodically scans pages and tries to pick less recently used ones) and globally (the standby page list)
<Matt|home>
as vague as that question is.. i don't care how vague the answers are, i just need something for my confirmation bias
<Ermine>
Btw some brave soul tried to build these XP sources. Turns out there are only few missing components, which can be taken from actual XP
<netbsduser>
processes can grow until there isn't much memory left, if they are frequently faulting, and a daemon periodically goes over processes and trims their pages if they are not faulting much
<heat>
yeah but their working set is severely limited isn't it?
<netbsduser>
the working set can grow very large but the overall "goal" is to have each process' working set be sized such that the process only page faults occasionally, while leaving a reasonable portion of memory to pages locally evicted (and thus globally eligible for replacement)
<netbsduser>
what is not present, but which was in openvms, is a mechanism for excluding whole processes from the balance set, the set of working sets permitted to be resident in memory, they do process swap but only opportunistically if a process is sleeping for a long time
<Matt|home>
y'know what, maybe today's just a bad day to code anything. yeah. today's a bad day for computer work, im tired and depressed, i can put this off for a little
<Ermine>
Oh gosh, setuptools people, can't you stop releasing new versions for five minutes?
<heat>
package maintainer moment
<Ermine>
and pretty-much on-topic content on #osdev
<heat>
package maintainership is unfortunately part of the job
<heat>
anyway i started my summer break today
<heat>
more or less 2 months of free time for ONYX and grass touching
<bslsk05>
'Obscure OSes You've NEVER Heard Of' by Kalos Likes Computers (00:29:46)
<mjg>
toaruos mentioned at 20-ish
<heat>
1) freebsd
<nikolapdp>
wow
<nikolapdp>
2) onyx
<mjg>
very positive
<Ermine>
really?
<Ermine>
heat: you said you're going to port drm didn't you?
<heat>
yes
<nikolapdp>
how's that going
<mjg>
so the video is pretty lame overall
<mjg>
no menuetos and other real f- weirdos
<GeDaMo>
You're more likely to have heard of the /real/ weirdos :|
<Ermine>
Also, no Sortix
<mjg>
GeDaMo: the youtube audience?
goliath has joined #osdev
Starfoxxes has quit [Remote host closed the connection]
<heat>
nikolapdp, big hurdle was figuring out how to incorporate the linux code when it comes to APIs
<heat>
i had a fun example: copy_from_user
<heat>
mine has the same name, different semantics
<heat>
i fixed their weird semantics and i'll have to pay for it
<mjg>
you mean the return value?
<heat>
ye
* mjg
says lul
<nikolapdp>
heat well if you aren't going to match semantics, it's probably a good idea to avoid having matching names
<nikolapdp>
so you're porting the actualy linux drm to onyx
<zid>
ur mum has drm
<mjg>
use klassik unix names: copyin/copyout
<heat>
following that logic, copyin/copyout doesn't work cuz i return -EFAULT and not EFAULT
<heat>
CopyFromUserSpace?
<heat>
Copy<CopyType::UserToKernel>()
<mjg>
are youa trisk of trouble when porting from bsd
<mjg>
wait you are not gonna port from bsd are you
<mjg>
there you go
<netbsduser>
digital rights management
<heat>
AKTCHUALLY
<heat>
wifi stack maybe
<mjg>
LOL
<nikolapdp>
really
<heat>
or audio stack
<kof673>
call it project evil :D return the favor :D you know you want to :D
<heat>
i really don't want to have anything to do with wifi, bluetooth and audio
<heat>
signals are fucking lame
<nikolapdp>
what do signals have to do with those
<netbsduser>
reject signals and embrace ASTs
<heat>
i mean physics signals, not unix signals
<nikolapdp>
ASTs?
<nikolapdp>
abstract syntax trees?
<netbsduser>
nikolapdp: asynchronous system traps
<nikolapdp>
heat: important distinction
<netbsduser>
it was how a software interrupt mechanism was named on the VAX
<netbsduser>
to this day the term is used to refer to internal mechanisms used in several BSDs that are involved in signal delivery among other things
<nikolapdp>
interesting
* geist
yawns
<geist>
good afternoon folks. what fun things are we discussing today?
<geist>
i heard VAX!
<nikolapdp>
hello geist
<geist>
yay ASTs
<geist>
howdy
<heat>
hi geist
<geist>
and yeah the vax architecture has a built in 16 level software irq dispatching mechanism that's kinda neat
<geist>
you can see the heritage in how NT still has IRQLs and whatnot
<geist>
though it's software emulating the same feature set on x86
<heat>
x86_64 also has IRQLs natively!
<heat>
they're very slow because no one seriously uses them
<geist>
sort of, but they're not that configurable, iirc they apply to ranges of the irq levels
<geist>
irq numbers that is
<Ermine>
there's some bsod code which has IRQL in its name
<heat>
what happened to cr5,6,7?
<heat>
are they the control register backrooms
<Ermine>
I've asked this question here some time ago
<geist>
what vax lets you do is fire an AST at say level 5 and then the cpu has a IRQL that you can raise and lower
<geist>
as it transitions across those layers, the cpu will fire any latched irqs in priority order
<heat>
if i were to guess, 5 6 and 7 are debug registers
<heat>
and they literally did instruction bits = cr<N>
<geist>
and the external irqs are also individually assignable an IRQ level, so you can configure say all external irqs at IRQL 8, so the cpu will raise itself to that level upon irq entry
<geist>
so things like a simple bottom half or 'call this on syscall exit' is very easy to do
<heat>
... no actually, they're just not used. bizarre
<geist>
yah i think only cr8 really got used by AMD
<heat>
cr1 is also unused
<geist>
iirc the CRs got added with 386, since they needed some place to put CR2 and CR3. iirc CR0 didn't need to exist prior to that? or maybe CR0 came along with 286 to let you set protected mode.
<Ermine>
cr1 is reserved
<geist>
probably the latter
<Ermine>
and cr5,6,7 do not exist
<geist>
CR8 is i think CR0 + REX bit too, added with x86-64
<Ermine>
'CR8 — Provides read and write access to the Task Priority Register (TPR)'
<geist>
ye, which lets you set the irq priority to mask out things
bauen1 has quit [Ping timeout: 246 seconds]
<geist>
question is if anything uses that really, aside from maybe debugging
<Ermine>
Dumb question, but maybe APIC can be used for the same stuff?
<heat>
hm?
<heat>
cr8 literally maps to an APIC register
<Ermine>
ah, so cr8 is apic basically
<Ermine>
okay
<heat>
mov $0, %cr8 => write(TPR, 0)
* Ermine
is still at paging chapter
<heat>
note that these movs don't take imm, was just an example
<geist>
yah dunno precisey why it was added. kinda smells like maybe a MSFT ask
gcoakes has joined #osdev
<kazinsal>
the bottom half of cr0 was the msw register on the 286 iirc
<kazinsal>
the rdmsw and wrmsw instructions were effectively msw -> ax and ax -> msw
<geist>
aaah that's right
<geist>
i remember this now
<geist>
did they get rid of that instruction or did it just get renamed mov cr in 386?
<geist>
propbalby didn't and it's yet another legacy ass instruction
<geist>
it would hvae had to have extra bits unused to get renamed crN
<kazinsal>
yeah I don't think it ever got removed
<geist>
probably disabled in that list of instructions you can hard kill in a recent intel thing
<geist>
already forgot the name.
<geist>
a feature bit that turns off legacy stuff in ring 3
<bslsk05>
'What happens if you connect Windows XP to the Internet in 2024?' by Eric Parker (00:20:35)
<mjg>
8(
shan has quit [Server closed connection]
shan has joined #osdev
<geist>
nah it's not x86-s, it's a feature bit that came along 5 years or so that just disables some of the silly instructions that no one uses in ring3
<mjg>
who uses ring3
<nikolapdp>
how many rings do you use mjg
<heat>
OH i know what you're talking about
<geist>
yeah just one of those bits yo uset and the world moves on
<heat>
obviously it's not that simple geist, some random program will use these and you will need to emulate them
<geist>
and yep, one of the instructions is SMSR
<heat>
it's the history of the software
<geist>
if you have backwards compatibility!
<geist>
if you dont, THE FUTURE IS HERE
<heat>
geist laughs in google
<geist>
but really look at those insdtructions, why would any user app legitimately use those?
<heat>
did you see the thing i linked one or two days ago about linux iopl()?
<geist>
no
<heat>
they used the tss iopl since forever, which actually allows you to disable and enable interrupts
<geist>
ah i see, it says soe emulation things like wine or whatnot might o it
<heat>
obviously bad, they fixed it, who would disable irqs in userspace anyway?
<nikolapdp>
~:
<nikolapdp>
~:
<mjg>
8====>
<nikolapdp>
lel
<mjg>
i never heard of umip
<heat>
queue some random HP bios fan software executing FUCKING BIOS CODE
<heat>
long story short they pretend they disable interrupts and keep going
<geist>
anyway for a new OS you'd just disable UMIP if the feature is present and move on
gsekulski has quit [Remote host closed the connection]
Arthuria has joined #osdev
LittleFox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
LittleFox has joined #osdev
<heat>
i feel like you didn't like my iopl story :(
<kazinsal>
"Prior to Linux 5.5 iopl() allowed the thread to disable interrupts while running at a higher I/O privilege level. This will probably crash the system, and is not recommended." heh
<heat>
you should have a process table with scores before that, no?
<nikolapdp>
oh this is also in the dmesg
<nikolapdp>
[3721574.450667] Purging GPU memory, 0 pages freed, 0 pages still pinned, 227 pages left available.
<heat>
nikolapdp, can you paste from "invoked oom-killer" downwards?
<heat>
or something similar, you'll see a stack trace right below it
<nikolapdp>
yeah dmesg was flooded with purging gpu
<nikolapdp>
i don't think i have the full oom killer report :(
<heat>
your init doesn't log dmesg?
<nikolapdp>
apparently
<heat>
init or syslogd or whatever
<nikolapdp>
not set up on alpine apparently
<Ermine>
in alpine there's separate thing for kernel logs iirc
<nikolapdp>
oh is there
<nikolapdp>
where would that be
<Ermine>
klogd
<heat>
see, with systemd this wouldn't be an issue
<heat>
it Just Works
<nikolapdp>
funny
<Ermine>
iirc this is configured, but I don't have any alpine vms around to check
<Ermine>
btw journald is also some kind of event broker
<heat>
well if you get the logs send them my way
<nikolapdp>
also yuck, binary logs
<nikolapdp>
sure
<heat>
i was actually thinking about implementing oom killer earlier :)
<heat>
but i ended up doing SCM RIGHTS instead
<nikolapdp>
scm rights?
<heat>
unix socket fd passing
<nikolapdp>
ah fair
<nikolapdp>
sounds more fun anyway
<heat>
personally i would prefer oom killer or something vm related, but i also wanted to get something functional going. this one's for curl
<nikolapdp>
another fun bug, i have a laptop running ubuntu at work, occasionally it will just hang
<nikolapdp>
i have the syslog and dmesg open on the other screen
<nikolapdp>
nothing ever shows up
<Ermine>
heat: oh, so you've implemented it?
<heat>
I'm On It
<nikolapdp>
why does curl need fd passing
<sham1>
It's nice to know that heat has now implemented SCM_RIGHTS
<heat>
IIRC curl does some sort of (DNS?) queries in parallel and then pipes open tcp/ip sockets through a unix socket
<nikolapdp>
weird
<sham1>
neat
<heat>
or at least it *can*. either way i'm getting this done
<sham1>
Having SCM_RIGHTS is of course useful for way, way more
hl_ has joined #osdev
<Ermine>
does qemu run dhcp for -netdev user?
<heat>
yes
hl has quit [Ping timeout: 256 seconds]
hl_ has quit [Client Quit]
manawyrm has quit [Server closed connection]
manawyrm has joined #osdev
netbsduser has quit [Ping timeout: 264 seconds]
hl has joined #osdev
<Ermine>
Oh, so alpine doesn't log kernel by default
<nikolapdp>
interesting
goliath has quit [Quit: SIGSEGV]
Gooberpatrol66 has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 268 seconds]
eddof13 has quit [Quit: eddof13]
<heat>
SYSTEMD!
<heat>
but yes binary logs are yucky
<kof673>
:/
<kof673>
code is data data is code..binary is text text is binary...it is in the eye of the beholder/convention entirely
<kof673>
this was meant to be quoting lisp-like stuff, not chanting lol
<sham1>
I have no problem with lisp chanting
eddof13 has joined #osdev
<kof673>
> a numerical constant. He could pick up an earlier “add” instruction, say, and multiply by it, if it had the right numeric value.
Gooberpatrol66 has quit [Ping timeout: 246 seconds]
vdamewood has joined #osdev
Arthuria has joined #osdev
eddof13 has quit [Quit: eddof13]
Turn_Left has quit [Read error: Connection reset by peer]
eddof13 has joined #osdev
rustyy has quit [Ping timeout: 264 seconds]
<dzwdz>
it seems to be old news at this point, but do y'all know what happened to toaruos?
<kof673>
i thought somewhere was a message for kuroko he was not working on c projects or similar at the time, but cannot find it. i think i recall he stressed in here months/year ago he was not exactly done, but don't quote me :D
<dzwdz>
ah, ok
<dzwdz>
i thought it was a bit weird to just archive it without some note about it so i checked their masto/twitter to see if there was anything there
<dzwdz>
and i saw that they went quiet on all platforms linked on their github at around the same time so i got a bit worried
<kof673>
Kuroko 1.4.0 Latest Aug 28, 2023 .........i mean....not that long ago....
<dzwdz>
...wow i forgot github had the contributions heatmap
<dzwdz>
i was judging their activity by the little charts in the repo tab
<dzwdz>
which made it seem like there was no activity since march
<dzwdz>
which is basically true i guess
<dzwdz>
and yeah, it's not that long ago, but still
<dzwdz>
i'm probably just overthinking things
X-Scale14 has joined #osdev
<geist>
yeah evetually everyone runs out of steam with this stuff
X-Scale has quit [Ping timeout: 250 seconds]
<dzwdz>
yeah, it's fine not to work on stuff obv
<dzwdz>
i just found it odd that it was archived without an explanation and then i started overthinking :p
chiselfuse has quit [Write error: Connection reset by peer]
eddof13 has quit [Quit: eddof13]
chiselfuse has joined #osdev
<geist>
i mean maybe but dunno, haven't seen them around here in a while
mjg has quit [Server closed connection]
mjg has joined #osdev
theyneversleep has quit [Remote host closed the connection]