<kof673>
> "V-tuber" persona i'm not that old, but it makes me think of: > Hi, I'm your video DJ! / I always talk like I'm wigged out on quaaludes / I wear a satin baseball jacket everywhere I go
Lucretia has quit [Remote host closed the connection]
<kof673>
it did a while back i was not here yet, it set off a chain reaction :D
<kof673>
*someone did
joe9 has joined #osdev
the_oz has quit [Ping timeout: 246 seconds]
the_oz has joined #osdev
gog has quit [Quit: byee]
sbalmos has quit [Quit: WeeChat 4.5.1]
sbalmos has joined #osdev
troseman has joined #osdev
troseman has quit [Client Quit]
Halofreak1990 has joined #osdev
edr has quit [Quit: Leaving]
troseman has joined #osdev
troseman has quit [Client Quit]
frytaped has quit [Quit: WeeChat 4.4.2]
frytaped has joined #osdev
Arthuria has joined #osdev
the_oz has quit [Ping timeout: 260 seconds]
surabax has quit [Quit: Leaving]
SGautam has joined #osdev
the_oz has joined #osdev
the_oz_ has joined #osdev
the_oz has quit [Ping timeout: 260 seconds]
the_oz_ has quit [Ping timeout: 260 seconds]
the_oz has joined #osdev
Halofreak1990 has quit [Ping timeout: 260 seconds]
<klys>
i got to spend 80 on ebay just to get mame working for decmate2. i got so much invested in this floppy drive duplication project. i may have various theories about what to hook my rx02 drive to, yet that isn't the point of duplicating the drive itself.
<klys>
in other news i still haven't spotted my solder roll
<klys>
or of course MMI-6301-1, and would need to be dumped from one of "DECMate II, Pro380 FDC, Rainbow 100" boards.
<klys>
the chip is marked : (Signetics) 88339 DM74S287N N82S129N / L8420 640A2 ; board markings include: 5415482 5015481C1P1 Side 1/2 L1-L4 (must be four layers) PC100 RX50 controller.
<klys>
and no those are dec style ports not intelligent drive electronics.
<cloudowind>
interesting
<klys>
the decmate ii had a n intersil 6100 cpu with a z80 daughterboard, and the rainbow had a z80 with an 8088 daughterboard. if you're into 8088 you might like https://www.homebrew8088.com
<cloudowind>
what is daughterboard? i know what motherboard never heard the daughter one:)
<klys>
there is some vax / decmate (pdp8) emulation with simh, yet that isn't about reproducing any circuits, so it's unlikely to be of benefit to someone working with an rx02 or similar equipment.
<klys>
my rx02 enclosure actually has a couple of interface boards which control two drives. i'd also seen similar boards sold on ebay, yeah, i already have that. the most appropriate thing would be a controller board, yet I seem to see all the roms dumped from one of those at oldpc.
<klys>
meanwhile various schematics pop up at bitsavers and internet archive
<geist>
fun!
<geist>
yeah i've been kinda keeping an eye out for one for my pdp11
<klys>
yeah!
<geist>
but i also need the interface card
<klys>
well I may buy it tomorrow as the offer for watching the item goes thru tomorrow
<klys>
meanwhile I'm working on fixing my car
<klys>
I have a mechanic friend who had the car towed to his place
<geist>
you should mix the two
<klys>
mix rx50 with rx02 circuits?
<geist>
mix rx02 with a rx-7
<geist>
wankel that floppy
<klys>
the day of the wreck I had just bought a new battery
<klys>
the battery is intact, thankfully
<klys>
duralast platinum
m5zs7k has quit [Ping timeout: 272 seconds]
<klys>
was reading about an analog gearless transmission not terribly long ago
<cloudowind>
makes sense why they didnt called boyboard to those being added to the motherboard as extension but daughterboard... socketing the sonboard into the mother could have cause some tabu issue haha , cant believe ive never heard daughterboard
<klys>
yeah a daughterboard, like a slot 1 pentium
<klys>
gone are the days when you could backplane
<klys>
well I've been working on my breadboard too
<klys>
I have dip switches and led's on a sram chip with two avaialble locations and a serial output on a shift register which loads the data in parallel from the sram.
<klys>
so, 1 1/2 full size duplex breadboard
<klys>
might be able to manage to dump a rom myself if I trusted my logic enough and could solder a little
m5zs7k has joined #osdev
<klys>
the wankel engine is a rotary relic from pre-2012 which still exists in hype just you might be thinking solenoids over pistons
<geist>
such as is the rx02, sadly
<zid`>
Just salty that your apex seals are leaking
<klys>
meanwhile the intent of the project is make a representation of the rx02 drive that anyone could duplicate via treatstock and thingiverse
<klys>
and yeah I would like it to work with some kind of logic attached to a computer
<klys>
hence the interest in mame specifically
<klys>
and cpm1975
<klys>
complete with ddt.cmd
* cloudowind
was -6 in 1975
<kof673>
:/ > Q. What is the age of a Philosopher ? A. From the moment of his researches to that of his discoveries, the Philosopher does not age.
<cloudowind>
i dont think talking about philosophy is a good idea while geist is around :) if its not something os philosophy
<klys>
tonight I cooked lentils and served with sriracha mayo
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
<klys>
if the idea is to make the rod turn fast, you can imagine how a few solenoids might help, i suppose.
<klys>
in this case the rod is actualy a clip, which fastens from both sides of the platter.
<cloudowind>
i dont have an answer for the question because its all about definitions and how you approach but what i can say about age and philosopher is that i remember reading aristotle saying that the most benificous age of a man is his 50ishes but the irony is when he says that he was in his 50shes:)
<cloudowind>
and lenthils sounds yum , i will be having soup form of it , with carrots and some potatoes boiled with added water and blended.. i am gone sorry for the mess
<kof673>
basically, some platforms might only support void main(void) ...so using defines, i define local vars instead of arguments, int argc, char * * argv; then call a function to retrieve them from whatever....then return just free()s the argv if needed. but it could output the return value or whatnot ....
<kof673>
then, because they are local vars named the same as what i use for main(int argc, char * * argv) then the other code is the same :D just some define trickery...
<ring0_starr>
"lnfmacv" this is an OS/400 command
<ring0_starr>
"DFKBLERP"
<kof673>
lol
<kof673>
normally it is just is defined as: #define LNSST_MAIN_RETURN(x) return(x); # or whatever it is
<kof673>
that's only from within main() though, otherwise i woud normally not do return();
PapaFrog has quit [Ping timeout: 272 seconds]
<kof673>
so, it is just because it is a macro
SGautam has quit [Quit: Connection closed for inactivity]
<kof673>
well other things i have defines for function names, so if they "need" to fit in 7 or 8 chars, the code will still have a "long" name, i just didn't bother to do that here...
<kof673>
i actually hate such short names, but attempting to support c89 and even k&r c maybe for some things :) we'll see....
<kof673>
some old ancient stuff doesn't even have void...it is a question of how annoying it is...k&r prototypes, easy.
<ring0_starr>
i get it, you're trying to show me how absurd it'd be to write in K&R C
<kof673>
nah, just find me a one complement and sign and magnitude compiler & system to test on......beggars can't be choosers...
<kof673>
c89 is my real limit of pain....but other "non-standard" stuff, just a q how annoying it is...
<kof673>
and "small" "not-quite-standard" "compilers" might be "almost C" but missing structs or similar.
<kof673>
as long as it doesn't cripple other code too much...
<kof673>
if it can be #ifdeffed away so does not affect other code...
<ring0_starr>
what are you targeting, anything in particular?
<kof673>
lol anything c89 is game :D
<kof673>
is there a compiler, preferably cross-compiler, an emulator? that's all that matters... :D
<ring0_starr>
what do you think about "OS building blocks"
<ring0_starr>
you do a thing and you do it really really well, and it's got a generic or standardized interface that helps matters but certainly doesn't make it bound to anything in particular
<ring0_starr>
a new platform comes out and you make an OS for it with the building blocks as a base, add support for your devices, and work on it to make it complete and polished for that particular target
<ring0_starr>
and you /don't/ merge your changes back to upstream, it's a fork
<ring0_starr>
it's a building block, not Loonicks
<ring0_starr>
think about all the security issues that don't really have anything to do with your target platform, or your feature set, or your hardware, or use case
mobivme has quit [Ping timeout: 260 seconds]
<ring0_starr>
and each component is easily testable because it has a well defined interface, like you could run the scheduler or the allocator etc. in userspace as a standalone program
<ring0_starr>
and in practice it'd be used as a microservice
<ring0_starr>
if you don't want the microkernel architecture then just get rid of that interface and substitute your own while keeping the meat of the functionality
<ring0_starr>
i think a lot of the pain that exists in the world of computing is self-inflicted by a lack of coherency.
<ring0_starr>
I mean we kinda have something like this in the form of NDIS, but..
goliath has joined #osdev
Gooberpatrol_66 has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 260 seconds]
Arthuria has quit [Remote host closed the connection]
<Jari-->
hi
mra has quit [Quit: Client closed]
antranigv_ is now known as antranigv
netbsduser`` has joined #osdev
PapaFrog has joined #osdev
<Jari-->
idling for the cause
<kof673>
<reads> i dunno, there was oskit...and the "portable driver" various things....
<kof673>
i was going to say...sort ie said something like the only way to test your tcp code is to put it on the internet....the only way to test various compilers, old or new...is to start building with them regularly IMO
<kof673>
versus, write code, test 1 year later, and then try to fix all the annoying things...
<kof673>
netbsd has the rump stuff...
Marsh has joined #osdev
MiningMarsh has quit [Ping timeout: 248 seconds]
Marsh is now known as MiningMarsh
<kof673>
ls som
<kof673>
#$@$@#$@ cat on keyboard error
<kof673>
http://wiki.osdev.org/OSKit there is probably others, just do they ever go anywhere, does anyone maintain them...
<bslsk05>
wiki.osdev.org: OSKit - OSDev Wiki
<kof673>
the OSKit homepage has not been updated since June 27, 2002
Yoofie6464467 has joined #osdev
Yoofie646446 has quit [Ping timeout: 252 seconds]
Yoofie6464467 is now known as Yoofie646446
<ring0_starr>
looks like it's all x86 stuff
<kof673>
possibly, it is like gcc 2.95 ish IIRC :D
<kof673>
just saying...those things have existed....as university research projects...
<kof673>
it let you use linux and freebsd drivers IIRC
<ring0_starr>
bsd started out as a university research project
<kof673>
i'm not knocking, i'm just saying who maintains them :D
<ring0_starr>
isn't this a good thing though?
<ring0_starr>
it's just a tiny repository of simple yet elegant pieces that you would start off with as a basis
<kof673>
well you see, the commercial world standardized on .net, java, openstep, ............................ everyone wants the portability grail, there is a tree of corpses :D
<ring0_starr>
when it's done and perfected, why does it need to be maintained
<kof673>
and if it is all browser now, that was maybe a prior similar thought, vaguely...have some "portable" library or language to write native applications in
<ring0_starr>
portability isn't really the explicit goal for what i mentioned
<ring0_starr>
it's generality
<kof673>
just from earlier talk i mean...everything in the browser...
<ring0_starr>
i kinda did this with my allocator and such, some pieces of my os
<ring0_starr>
it's just a user mode program with some tests as main()
<ring0_starr>
but
<ring0_starr>
do people actually use OSkit?
<kof673>
> 2002 dead people j/k
<ring0_starr>
it seems like everybody takes the approach of porting Linux
netbsduser`` has quit [Ping timeout: 260 seconds]
<ring0_starr>
when they want a new platform
<ring0_starr>
why do you need to port linux. if you want access to lots of existing applications you need the abi, not the kernel
<ring0_starr>
besides, linux needs gcc to compile...
craigo has quit [Ping timeout: 260 seconds]
alifib has joined #osdev
GeDaMo has joined #osdev
netbsduser`` has joined #osdev
Halofreak1990 has joined #osdev
q3lont has joined #osdev
EmanueleDavalli has joined #osdev
heat has joined #osdev
frkazoid333 has quit [Read error: Connection reset by peer]
_whitelogger has joined #osdev
hwpplayer1 has joined #osdev
Terlisimo has quit [Quit: Connection reset by beer]
<bslsk05>
github.com: toolchains/gcc-14.2.0.patch at master · heatd/toolchains · GitHub
<EmanueleDavalli>
thx
<heat>
also see the rest of the patch (those config onyx.h headers are particularly important for messing around with the spec file)
Terlisimo has joined #osdev
Halofreak1990 has quit [Ping timeout: 246 seconds]
Halofreak1990 has joined #osdev
Halofreak1990 has quit [Ping timeout: 265 seconds]
bauen1 has joined #osdev
frytaped has quit [Quit: WeeChat 4.4.2]
frytaped has joined #osdev
frytaped has quit [Max SendQ exceeded]
frytaped has joined #osdev
pabs3 has quit [Ping timeout: 246 seconds]
* cloudowind
have no idea why the eudev he has compiled and built is not being triggered by a kernel event
surabax has joined #osdev
jeaye has quit [Ping timeout: 260 seconds]
ring0_starr has quit [Ping timeout: 252 seconds]
jeaye has joined #osdev
<EmanueleDavalli>
I think I finally got the syntax for specifying the startfiles and endfiles, time to recompile gcc
bauen1 has quit [Ping timeout: 246 seconds]
heat_ has joined #osdev
heat has quit [Ping timeout: 252 seconds]
edr has joined #osdev
pabs3 has joined #osdev
guideX_ is now known as guideX
alifib has quit [Quit: .]
bauen1 has joined #osdev
frytaped has quit [Ping timeout: 244 seconds]
mra has joined #osdev
mobivme has joined #osdev
Halofreak1990 has joined #osdev
q3lont has quit [Quit: Leaving]
<EmanueleDavalli>
I finally managed to compile libjpeg-turbo as a dynamic library
mra has quit [Quit: Client closed]
msv has quit [Read error: Connection reset by peer]
svm has joined #osdev
svm is now known as msv
joe9 has quit [Quit: leaving]
thisisjaymehta has joined #osdev
Left_Turn has joined #osdev
mra has joined #osdev
mobivme has quit [Ping timeout: 252 seconds]
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 245 seconds]
mobivme has joined #osdev
netbsduser`` has quit [Ping timeout: 244 seconds]
mra has quit [Quit: Client closed]
mra has joined #osdev
mra54 has joined #osdev
mra is now known as Guest5811
mra54 is now known as mra
Guest5811 has quit [Ping timeout: 240 seconds]
netbsduser`` has joined #osdev
zijjgfs has joined #osdev
zijjgfs is now known as ring0_starr
EmanueleDavalli has quit [Quit: Leaving]
vdamewood has joined #osdev
<vdamewood>
Hi, people etc.
<vdamewood>
Oops, I usually say that in another channel. Anyway, hi.
<the_oz>
Hi
frytaped has joined #osdev
heat has joined #osdev
heat_ has quit [Read error: Connection reset by peer]
gog has joined #osdev
Halofreak1990 has quit [Ping timeout: 248 seconds]
frkazoid333 has joined #osdev
craigo has joined #osdev
Gordinator has joined #osdev
<zid`>
vdamewood: n ice to finally get the proof that we're not worth it
* vdamewood
gives zig a carrot
<vdamewood>
zid` *
<heat>
wow now you're calling him a horse
Halofreak1990 has joined #osdev
<vdamewood>
Naw, zig is the name of the fighter units from Zero Wing
<vdamewood>
Take off every Zig!
<zid`>
and they're horses, apparently?
<zid`>
Move zig, for great justice
<vdamewood>
Apparently
<vdamewood>
Well, real life beckons.
goliath has quit [Quit: SIGSEGV]
<zid`>
vdamewood is weak
<zid`>
Throw your life away for 2000s flash videos
<vdamewood>
very
<vdamewood>
No, I'm not strong enough.
bauen1 has quit [Ping timeout: 260 seconds]
vin has joined #osdev
mobivme has quit [Ping timeout: 260 seconds]
<Halofreak1990>
So I'm at the point where I want to implement system calls and multi-threading. However, I cannot wrap my head around saving the current state, which partly resides on the one kernel stack per CPU (ss, esp, flags, cs, eip) and in the general-purpose registers, into the current thread's state structure, accessed through the gs segment
<zid`>
x86 has a cheaty xsave instruction, but all you need to do is write out some movs through gs otherwise
craigo has quit [Remote host closed the connection]
goliath has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mra has quit [Ping timeout: 240 seconds]
hwpplayer1 has quit [Quit: Thanks all See you later Take care]
<heat>
Halofreak1990, generally you save the thread state onto the stack
<heat>
for various reasons
<gog>
i'll save my state on your stack
<kof673>
i only do several states
<gog>
you know what fuck it
* gog
dumps your core
<heat>
please dont take a dump all over the disk again, thanks
<zid`>
Sometimes you need to pack away your toys and go home
<Halofreak1990>
heat, but how do you then save that to the thread structure, in case you end up switching threads? With one kernel stack per thread, you can just push it onto the stack, yes, but that doesn't apply when you only have one kernel stack per CPU, right?
<heat>
Halofreak1990, you don't, you keep the state on the stack and track that
<heat>
>but that doesn't apply when you only have one kernel stack per CPU
<heat>
correct but that's not what you do for various reasons
<heat>
you kind of need a kernel stack per thread for most intents and purposes
<gog>
if your threads are to be schedulable by the kernel
Gordinator has quit [Quit: My client has closed - perhaps I did that, perhaps I didn't]
alifib has joined #osdev
alifib has quit [Client Quit]
Turn_Left has quit [Ping timeout: 248 seconds]
GeDaMo has quit [Quit: 0wt 0f v0w3ls.]
<Halofreak1990>
shouldn't I be fine with either kind of kernel stack setup as long as I set up the required stack frame before dropping to user space?
<Halofreak1990>
I don't see how scheduling would be affected as long as it happens after the syscall, but before restoring the thread state onto the kernel stack
<Halofreak1990>
if a system call calls for rescheduling, just set a flag on the thread and handle that once the C/C++ part of the syscall has ran
netbsduser`` has quit [Ping timeout: 252 seconds]
<heat>
no
<heat>
not having a kernel stack per thread makes it impossible to e.g save stack variables on a shared global thing, or simply sleep on the stack, etc
mobivme has joined #osdev
<sortie>
I very much recommend a per-thread kernel stack. 1:1 scheduling. It's much, much easier and works very well.
<sortie>
I tried saving the state here with a shared kernel stack in old versions of Sortix, but it became very, very hard to do blocking system calls and being properly preemptive.
<sortie>
Saving the state is what a stack does anyway, so that's why a per-thread kernel stack makes sense. In Sortix, it's the same thread, whether it's in user-space or the kernel
<froggey>
having an single (or per-cpu) kernel stack is certainly possible, but requires a bit of an odd programming style. kind of like programming with futures & continuations whereever you want to block in kernel space
<zid`>
My advice is to not have threads.
<zid`>
processes is pushing it
Turn_Left has joined #osdev
<heat>
plan9 threading model >>
<heat>
what's a thread if a process that shares a lot of shit with other processes
<Griwes>
my syscall codegen generates me the "save syscall state so you can try again later" code, it's actually kinda nice - and then the kernel ends up being kinda like a coroutine runtime (plus preemption), with threads being its coroutines
<heat>
very c++20pilled
<heat>
now implement the networking proposal at the syscall layer thanks
<Griwes>
welllll, I did at first kinda try to literally use coroutines, lol
<Griwes>
too bad we continue (hehe) to not have a way to set a bound on the coroutine frame size, since my kernel doesn't do memory allocation of arbitrary sizes