<kazinsal>
hrm. ISA has no bus arbitration so this is going to be trickier than I thought
<Griwes>
you really are thinking about this more than you probably should lol
<kazinsal>
assuredly
andydude has quit [Quit: Leaving.]
* gog
pets kazinsal
nvmd has joined #osdev
<kazinsal>
nyan~
nvmd has quit [Client Quit]
nyah has quit [Quit: leaving]
<gog>
hi
<Affliction>
ih8win8 │ I'm sure there are FPGA NIC implementations, but an entire TCP stack in hardware seems tough. <- I could envision it. Might offload the special cases to a service processor, but reassembling packets based on their seq number probably wouldn't be TOO hard.
<Affliction>
That said, there were plenty of TCP layer bugs in the early days
* kazinsal
pets gog
<gog>
prr
<ih8win8>
It's a complex thing to implement.
<ih8win8>
I wonder if TCP or USB is harder to implement.
<Affliction>
Don't forget your bounds checks on the seq number, or you'll have a nice "Write anywhere in the 4GB after the DMA write cursor" primitive...
<gog>
neat
<gog>
attack packet
<Affliction>
Ship it as "Hardware Accelerated RDMA" :)
<gog>
remote direct memory access is a great idea that will have no consequences
Yoofie has quit [Read error: Connection reset by peer]
<Affliction>
Naturally you'd never use it on interfaces with a path to the internet. I hope.
<ih8win8>
oh, ethernet
<ih8win8>
naturally, you'd never use that on anything
Yoofie has joined #osdev
<kazinsal>
InfiniBand had RDMA as a first class service
wblue has quit [Quit: wblue]
<clever>
gog: `attack packet` reminds me of a win95 bug, a malformed ICMP ping would bluescreen the system, it was called the ping of death
cloudowind has joined #osdev
<cloudowind>
Yay !!! Good to find you here all
<geist>
snack attack!
<cloudowind>
Yea got lost and felt upset thought you guys all were gone
<cloudowind>
Went to oftc and been told all freenode folks migrated here
<Ermine>
You've been told that _most_ of the folks moved to liberachat
<cloudowind>
There is a dick at op at osdev at freenode called crsytalmeth :D and were like 16 people and I said wtf
<cloudowind>
*at/head
<geist>
cloudowind: oh i thought you had found us here a long time ago
<geist>
yeah crystalmeth tool over the old freenode one and refused to come over
<cloudowind>
No haven't seen you guys like 3 years I would say
<geist>
and *shrug* dunno why, but there ya go
<cloudowind>
You can find it better with your logs
<geist>
oh well, we moved over here pretty much within a week or so and then frankly i forgot about the freenode stuff within about a month
<geist>
a shame he's still being a dick
andydude has joined #osdev
<geist>
huh i can't even connect to it
<geist>
i wonder if they've blocked my ip range
<ih8win8>
Windows 95 was chock full of bugs.
<ih8win8>
Just trying to access C:\CON caused a BSOD.
wblue has joined #osdev
mhall has quit [Quit: Connection closed for inactivity]
<CompanionCube>
wasn't it any dos device repeated in a path?
<geist>
yep, there were ore than that too
<geist>
LPT, etc
<ih8win8>
MS did release a patch for it, but this was before automatic updates, so not everyone got it.
<kazinsal>
yeah I would argue that’s less “bug” and more the VFS programmers going “people won’t be this stupid if they know what DOS device names are, right?”
<kazinsal>
the patch is them going “ah, they *are* that stupid”
<ih8win8>
never underestimate the stupidity of users
<Ermine>
MS developed Windows NT for a reason
<geist>
well, i think that was more because it was initially a huge hodgepodge of DOS and stuff on top of it
<geist>
so that CON redirect was probably some legacy DOS layer taking over
<ih8win8>
oh yeah, and Windows 98 FE wasn't Y2K compliant, yeah, just 2 years before 2000.
<geist>
they later continued to emulate it, but probably involved refactoring that layer
<geist>
also keep in mind at that point i dont think there as that much of a VFS
<ih8win8>
they had to release a y2k patch for that, too
<Ermine>
Btw wasn't their DOS shell just reside in a DOS vm?
<ih8win8>
yep
<geist>
v86 yeah
<geist>
but there was also pieces of dos running in other v86 shells too, hidden
<geist>
the whole .VXD driver stuff
<Ermine>
Not just v86
<geist>
it was an epic hack
<geist>
like the 32bit OS could thunk back into 16bit to run drivers and other pieces of the system
<Ermine>
There's VMM part in win9x kernel
<ih8win8>
You could do DOS interrupts, but a lot of them were hooked by drivers to emulate them rather than going directly to DOS.
<Ermine>
And win32 runs in its VM as well
<geist>
ih8win8: yeah from what i understood as part of win95 OSR2 and win98 they replaced more and more of the DOS thunks with 32bit code
<ih8win8>
Most of the win32 APIs thunk down to a 16-bit implementation
<geist>
such that by the time you got to 98 or ME i think it was mostly gone, or so i understand
<geist>
but that was of course over a 5 year period
<geist>
gosh i remember when win95 came out. it came out like within a week of starting college. it was such a great leap forward
<ih8win8>
98 also added WDM, which replaced VxDs
<geist>
still was flaky, etc but was much less so than futzing with dos and win3.1
<ih8win8>
UI-wise, it was an amazing leap forward
<geist>
indeed
<Ermine>
Everyone seemed to be super happy about this
<ih8win8>
until 2012 when *that* version of Windows was released.
<Ermine>
I'd like to see that with my own eyes
MiningMarsh has quit [Ping timeout: 272 seconds]
<geist>
well, dont forget ME was not well received
<geist>
mostly at the time it was because it ran badly on contemporary hardware
<geist>
but by then i was mostly using NT 4.0
<geist>
and then win2k
<Ermine>
Afaik they wanted win98 to be the last win9x release, but they decided to release ME for some reason
<zid>
ME was identical to 98se for most people, just without the 'se' part
<zid>
crashy and new
<Ermine>
So the final unification came with XP
<geist>
main problem iirc was it pushed really hard on the whole active desktop nonsense, which ran badly
<Ermine>
In LGR's video winME runs fine though
<zid>
even back then we'd gut 98 and turn most things off, you would do the same to ME, but maybe not outside of 'people with slightly technical friends'
<geist>
probably running it on better hardware
<geist>
zid: bingo. most folks wouldn't know how to or want to bother turning stuff off
<zid>
98se ended up *fairly* stable
<geist>
so you ended up with whatever nonsense is the default. plus hw vendors were putting lots of extra shit on by now
<zid>
like, soemtimes you could use it for your entire session without it crashing!
<zid>
ME stayed crashy
<zid>
really interrupts your runescape grinding
<ih8win8>
Stability of Windows 9x series depends heavily on the quality of your drivers.
<geist>
and how much BS was preinstalled
<zid>
no BS was preinstalled on any of our machines cus you had to reimage them three or four times a year
<zid>
cus a random bit of malware would run deltree C: /y for fun, or it'd just randomly corrupt the fs, etc
<zid>
malware from "using a web browser", cus security wasn't.. really a thing yet. Any advertizer could just decide to make you run an .exe
<geist>
yeah exactly. now at least with NT based windows you could probably still just chug through extra BS. it would slow shit down but *probably* not make it any more unstable per se
<geist>
but in the win9x series, extra BS could just crash the system for no real reason
wblue has quit [Quit: wblue]
<cloudowind>
What was bs? base stack or something
[itchyjunk] has quit [Ping timeout: 272 seconds]
<zid>
geist was a huge fan of bonzi buddy
<geist>
bullshit
<geist>
when i say BS I generally mean crapware that was installed on your computer by the vendor
<zid>
My 98 machine came with jasc paintshop pro, sadly it doesn't run quite right on w7/w10
<geist>
still a thing of course, but i think in the late 90s the vendors were just figuring it out so they were pushing it as far as they could
<zid>
It was all from cd-rom you had to install it all yourself, which imo is preferable
<geist>
yeah that sounds like a decent computer. a lot of the packard bells were really bad about preloading stuff
<zid>
was a prebuilt by 'omega', I remember the specs still
<zid>
rather than a random dell/hp/packard bell, those were crap yea
<zid>
custom cases and psu designs so we couldn't swap the parts around and stuff
<geist>
gateway!
<ih8win8>
Dells were quite nice up until mid 2000s.
<zid>
They were 'fine'
<zid>
but they were all lay-down cases and nothing fit
<zid>
It was a 400MHz celeron with 128MB of ram, ICH7 i810
<zid>
hardware rng baby, and 2MB of video memory
<zid>
played quake 3 very passably
<cloudowind>
I would love to play diablo 4 but I need a second hand ps4 or xbox s I ended up concluding to do so
<zid>
have you considered playing diablo 2 instead
[itchyjunk] has joined #osdev
<zid>
D2R *almost* runs well on my 5800x, very well optimized game from 2000
<cloudowind>
I have played 1 and 2 already and also immortal one
<zid>
But do you have a pluggy stash with every single unique in it yet
<geist>
had a lovely dell dimension xps p90 in 1995
<cloudowind>
Started to consider the time wasted on games is wasted time and it gives me a bit of a bad feeling deep down there telling myself why not reading a book or playing guitar but moving bits from one place to another
<geist>
was a good minitower
<cloudowind>
Did you buy d2 r
<cloudowind>
Have you paid or played wit cracked version
<zid>
someone gifted me it
<zid>
with the intention we'd both play, but then he disppaered
<cloudowind>
Apparently d3 has been cracked and there is server emulator running well
<zid>
so I've basically only boot tested it
<zid>
I had d3, but it was broken as fuck, then they wanted £45 for a fixed version
<zid>
fuckers
<mjg>
lol @ diablo
<mjg>
fucking tiktok game
<mjg>
i remember finishing the first chapter of diablo 2 and asking myself why am i playing this fucking game
<cloudowind>
What thee I am looking at worlds first ai conference journalists asking questions to robots
<mjg>
did not have an answer so i stopped
<mjg>
intentionally or not they really gamified the ez win experiene
<cloudowind>
Jewish mythology
<cloudowind>
There is greek version of it called titans quest
<cloudowind>
:D
wblue has joined #osdev
dude12312414 has joined #osdev
vdamewood has joined #osdev
<cloudowind>
There were Packard bells once upon a time
terminalpusher has quit [Ping timeout: 246 seconds]
<cloudowind>
There was this fellow Geist Romanian fellow who decided to be a chick was his name bssc or something I forgot he was eh she was a star fellow tho
<cloudowind>
This young German fellow we had who changed his nick to reversed
<cloudowind>
Mikaku seems ldidnt come here but moved to oftc I can see him being online there atm at linux channel you're there too Geist.. at oftc if that is you there an online guy there with nick Geist
skipwich has quit [Quit: DISCONNECT]
skipwich has joined #osdev
wblue has quit [Quit: wblue]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
cloudowind has quit [Quit: This computer has gone to sleep]
cloudowind has joined #osdev
<geist>
yeah the geist over on oftc is me too
<geist>
couple of channels i hang out there
valshaped742 has quit [Quit: Gone]
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<klys>
what's a good way to prep eg. objdump output (for example) for reassembly?
GeDaMo has joined #osdev
valshaped742 has joined #osdev
<kazinsal>
step one: ask yourself why you're doing that
<klys>
well I was meaning to add some nasm support to libopcodes today
<klys>
though I will be too busy tomorrow.
<andydude>
klys: my personal opinion, -M intel
<klys>
andydude, I've been dealing with that, yes.
<andydude>
but for headers, I just use rectangle delete in emacs
<bslsk05>
github.com: uefi-bare-bones/meson.build at master · no92/uefi-bare-bones · GitHub
<vaartngvirf>
It looks extremely attractive to me
<vaartngvirf>
What are pitfalls you get into later on?
<Mutabah>
ddevault: idea - try on virtualbox (or another emulator) and see if there's logging that helps?
<Mutabah>
another idea: maybe there are multiple controllers on this machine?
<ddevault>
it works fine on qemu
<ddevault>
just one controller afaict
<sakasama>
vaartngvirf: It's python with language-dependent rules built into the system. That's a lot of complexity to support if you're ever planning on self-hosting.
<ddevault>
confirmed in qemu that it works fine with two AHCI controllers present
<Mutabah>
I saw that qemu works, but what about another emulator
<ddevault>
don't have another emulator handy
<ddevault>
want an iso?
<Mutabah>
Not currently on the machine that has vbox :(
<ddevault>
lucky you :)
<vaartngvirf>
sakasama: if you are anywhere near self-hosting then surely you can also port python, no?
<bslsk05>
git.sr.ht: ~lattis/muon - meson implementation in C - sourcehut git
<sakasama>
vaartngvirf: Urgh. Better select one of those C ports instead.
<ddevault>
oh good AHCI spec lacks a changelog
<ddevault>
got it
<ddevault>
CAP.SAM = 1 and writes to GHC.AE seem to break the controller
<ddevault>
don't write AE and the controller works, paradoxically
<ddevault>
follows from the spec though
<ddevault>
woot
sinvet__ has quit [Remote host closed the connection]
cloudowind has quit [Quit: time to rest]
vaartngvirf has quit [Quit: WeeChat 3.5]
<sham1>
make
<mcrod>
make sham1
<clever>
make clean
<Mutabah>
make clever
SGautam has joined #osdev
<ddevault>
oh, SAM is not set, and neither is AE
<ddevault>
and setting AE breaks the controller, and it works when it's unset? ???
<ddevault>
in fact writing it has no effect
<ddevault>
maybe it's a cache issue? the pages are mapped PCD...
* Ermine
pets gog
* gog
pr
sinvet has joined #osdev
sinvet has quit [Remote host closed the connection]
<gog>
meson reminds me of scons
<gog>
i used scons for awhile but now i just use make lol
<[Reinhilde]>
I need to go and reassemble my espresso maker
<gog>
i am french pressing rn
<[Reinhilde]>
i should get one of those
<gog>
my fav way to make coffee
<gog>
i do like a good esspresso tho
<ddevault>
the fuck
<ddevault>
so on my laptop, on reset AHCI is not enabled (GHC.AE = 0), writing AE = 1 sticks (was wrong earlier), but once AE = 1 all drives are not present
<ddevault>
if I /don't/ enable AE and leave it off, the drives are present
* ddevault
consults the linux implementation for workarounds for buggy vendors
terminalpusher has joined #osdev
<mcrod>
gog i want a hug
sinvet has joined #osdev
* gog
hug mcrod
* mcrod
hugs gog
sinvet has quit [Client Quit]
innegatives has joined #osdev
<innegatives>
gog: Why are you loading a shim instead of just booting the kernel directly from the loader?
<gog>
it's an experiment mostly
<innegatives>
But one can do the same from the loader, right?
<gog>
two-stage loaders so i can just write a new one
<gog>
yeah
<innegatives>
what's the benefit of two-stage loader?
<gog>
stub from firmware does platform-specific things, second stage gets the environment ready for the kernel
<gog>
it can be done in one stage
<gog>
but i separate them
<innegatives>
so if ported to different platform all you need to change is the first stage only?
<gog>
not at the moment
<gog>
but you could write code for each
<gog>
i only have efi
<gog>
and x86_64
<innegatives>
gog: what did you read to learn all this uefi crap?
<gog>
the uefi specification document
<innegatives>
but how the hell do you read it, its like 10k pages long
<gog>
you only need some parts of it
<gog>
there's a thing called a table of contents
<innegatives>
how do you know which parts you need
<gog>
i'm a compenent programmer and i just know what to look for
<gog>
reading comprehension helps
<gog>
you seem to be capable of the latter
<gog>
so like
<innegatives>
gog: what are some projects you did before doing this to become a competent programmer? i have been doing webdev level shit for years but dont have a clue how to break into this
<mcrod>
step 1: do things outside of web dev
<innegatives>
i have made shit like lexer generator and parser generator
<innegatives>
and 8086 emulator
<innegatives>
that is broken
xenos1984 has quit [Read error: Connection reset by peer]
<gog>
ngl my job is annoying and hard lol
<mcrod>
the reality is
<gog>
but i like it
<mcrod>
a lot of this is a shit ton of reading
<mcrod>
a _shit ton_
<gog>
i do webdev professionally and yeah a lot of reading
<gog>
half of my day is reading docs
<mcrod>
ever tried to read the intel optimization guide?
<gog>
and thinking about thing
<mcrod>
that shit can hold up my desk
<gog>
fix your 8086 emulator
<gog>
there's a project
<gog>
i just write code until it works
<gog>
i've been doing random osdev experiments for years
nyah has joined #osdev
<gog>
and i just eventually learned
<innegatives>
i dont feel like im learning anything relevant to this from doing 8086 emu
<innegatives>
it works just cant boot DOS
<gog>
i think that means it doesn't work
<gog>
and that's fine
<gog>
things that don't work are fine but fixing them can be a good exercise
<innegatives>
can you throw few more ideas at me?
<gog>
no
<mcrod>
innegatives: I think you're overthinking it
<mcrod>
oversimplifying this, almost to the point of being wrong: osdev is "read this, implement this"
<ddevault>
what the actual fuck is wrong with this AHCI controller
<mcrod>
for example, it would not be the world's hardest thing to write your own library to talk to X servers
<mcrod>
the protocol is there, the spec is there, it is awful but it's there
<mcrod>
and for a lot of people that'd be mindboggling
<mcrod>
but... it's really not too bad
<mcrod>
moral: don't overthink, and simplify as often as possible
awita has joined #osdev
<mcrod>
in fact, most things are "read this and implement this", until you get a situation where what you're reading is nonsense, but wading through those waters comes with experience and time
innegatives has quit [Quit: WeeChat 3.5]
xenos1984 has joined #osdev
<ddevault>
maybe I should just write an IDE driver
<clever>
and people made things like a camera or wifi card, that went into the SD slot
<clever>
and abused the SD interface
<clever>
kind of like a scanner on scsi
<ih8win8>
The GameCube's memory cards are actually SD cards, but the pins are a bit different.
<clever>
and then the chip/drivers already exists, so it was cheap to just install the SDIO wifi on the main board
<clever>
and it stuck :P
<clever>
dang, the datasheet i linked, says absolutely nothing about configuring anything
<clever>
its basically useless
<ih8win8>
Linux drivers can be useful, but they can be extremely complex to read through, since they try to make use of every single feature of the device.
<clever>
the chip is also able to connect to an SPI flash chip, which holds configuration and the mac, but RPF cheaped out, and program the mac at startup, based on the SoC serial#
<clever>
also, the chip normally expects a 25mhz crystal, but another cost-cutting removed it, the SoC generates a 25mhz square wave on a gpio pin, and that clocks the hub/ethernet
<ih8win8>
I'm not even going to think about using WiFi. You need to implement SDIO, a driver for the chip (which also requires lovely proprietary firmware), WPA2 encryption support, and a full TCP/IP stack.
<bslsk05>
iosoft.blog: Zerowi: bare-metal WiFi driver for the Raspberry Pi – Lean2
<ih8win8>
Well, good for that poor soul
<clever>
so that just leaves the question, are you willing to copy his homework? lol
<clever>
oh page 26 of 00002305A.pdf, i see an enable option for multi-TT
<clever>
so it can either have 1 TT for the whole hub, or a TT for every downstream port, so you could hammer 4 LS devices at once
<ih8win8>
One thing that may be pretty useful is to have a DOS-like OS on the Pi. It would be an environment very close to bare metal that could run applications that can use all the resources of the machine without anything else getting in the way.
<clever>
thats what ive been using little-kernel for
<clever>
ive got a full command prompt, and can modify the kernel however i want
<ih8win8>
And the hardware drivers for USB, wifi, gpio, etc would be included and usable as libraries.
<clever>
the only big thing missing in my setup, is no binary loading or userland
<clever>
all programs must be baked into the kernel at compile time
<ih8win8>
Well, you can keep it all in kernel mode, and just load an ELF file from the filesystem and run it.
<clever>
and 00002305A.pdf turns out to be somewhat useless too, it says how the eeprom stuff works, and has more details, but the ethernet controller is missing entirely
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
Arthuria has quit [Ping timeout: 272 seconds]
wootehfoot has joined #osdev
ss4 has joined #osdev
wootehfoot has quit [Ping timeout: 240 seconds]
innegatives has joined #osdev
<innegatives>
Is there a canonical UEFI x64 C headers anywhere, why does everyone construct their own?
<bl4ckb0ne>
theres many, pick your prefered poison
<bl4ckb0ne>
i have the one from zircon, some write them themselves
ss4 has quit [Ping timeout: 252 seconds]
dutch has joined #osdev
[itchyjunk] has joined #osdev
ss4 has joined #osdev
innegatives has quit [Quit: WeeChat 3.5]
<Ermine>
You can just copy everything from uefi specs, but watch out for typos and identation issues
<bl4ckb0ne>
and that awful PascalCase
<bl4ckb0ne>
truly disgusting
<ih8win8>
microsoft influence?
<zid>
I don't mind the camelcase, it's the fucking typedef'd pointers and shit that get me in windows style
<mcrod>
you mean hungarian notation?
<zid>
winapi only barely uses hungarian notation, some of the time
titdrop has joined #osdev
<bl4ckb0ne>
typedef'd pointer should be forbidden by the C spec
<zid>
(it uses nblah occasionally, and lp occasionally)
<geist>
i used to use them for handles or whatnot, but less so nowadays
<zid>
and nthings isn't even really hungarian notation specific either
<zid>
it's natural languagey
<sham1>
Well a HANDLE is by its nature an opaque thing
<geist>
also typdefed pointers to functions is a win
<geist>
since you dont want to type the whole thing
<sham1>
zid: that's Apps hungarian notation tho, not the type people usually complain about, i.e. systems hungarian
<mcrod>
jesus christ, why the fuck can't I set a working directory for gtest on CMake
<mcrod>
pszMyString is the worst of it on the winapi side at least
ss4 has quit [Quit: Leaving]
wootehfoot has joined #osdev
<zid>
oh, Foundation S2 started
ih8win8 has quit [Ping timeout: 272 seconds]
<bl4ckb0ne>
ctest is dumb
<mcrod>
bl4ckb0ne: i hear what I think your voice sounds like already in my head
<mcrod>
"meson"
<bl4ckb0ne>
meson test is better
ih8win8 has joined #osdev
<sham1>
make
<sham1>
Reject modernity, embrace tradition
bleb has quit [Ping timeout: 255 seconds]
<bl4ckb0ne>
make is dumb
* geist
yawns at everyone
<geist>
where's my cat!
<bl4ckb0ne>
id send you a patch just to prove my point mcrod but i have higher priorities
bleb has joined #osdev
<sham1>
Make is not dumb >:(
<geist>
agreed
<bl4ckb0ne>
its powerful
<bl4ckb0ne>
but its dumb
<bl4ckb0ne>
cmake is dumber tho
<geist>
ninja is super dumb by that same metric
<sham1>
Also, the irony of "reject modernity, embrace tradition" in terms of programming languages is funny, because you can also get with it lisp, which is of course very, very advanced
<geist>
but frankly i like dumb build systems that i can build what i need out of it
<geist>
instead if it already having a bunch of built in things that i have to override
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<sham1>
IMO a build system should be dumb
<sham1>
Like what is building, really
<bl4ckb0ne>
^
<sham1>
It's a dependency graph traversal
<geist>
yeah the only thing wherethat falls apart in my experience is when the build system has no higher level concepts other than file time stamps, which is generally a make/ninja issue. can work around it, but for certain things it gets pretty nasty
<geist>
lots of fake time stamp files, etc
Arthuria has quit [Read error: Connection reset by peer]
<geist>
and an inability to futz with the build graph once it's built
<geist>
though i haven't seen too many build systems that let you do that
<sham1>
I like redo as an alternative
<sham1>
Like the concept, not necessarily the implementations that are out there
<geist>
ie, having as a byproduct of running a rule, adding new targets to build
<geist>
dynamically
Arthuria has joined #osdev
<sham1>
redo lets you do that
<geist>
we had somethingl ike that in house at a game company i worked at a bit and it was pretty powerful
<sham1>
For example, if you are compiling a C file and you of course want to recompile if your headers change, you can have redo do that because your .do-files are really just shell scripts that do neat things atomically
<geist>
really the whole build system instead of building the graph up front, just started running the root node in the graph, which was to start parsing the XML that described the top level deps, and then went from there. as part of that rule it generated more nodes and it just kept iterating until everything was done
<geist>
obviously that'd be a nightmare to debug, but it was all done within a single process written in C# and each rule was a subclassed object, so it was fairly easy to trace
xenos1984 has quit [Ping timeout: 246 seconds]
<geist>
what i dont know is how cross deps were handled: if as parsing some sub rule it decided it also dependended on te output of somehting it hasn't seen before in another branch of the tree, i dunno what it did
gildasio has quit [Ping timeout: 240 seconds]
<geist>
maybe it just stopped and started parsing another branch of the tree until it was see
ih8win8 has quit [Ping timeout: 272 seconds]
MiningMarsh has quit [Ping timeout: 250 seconds]
gildasio has joined #osdev
MiningMarsh has joined #osdev
titdrop has quit [Ping timeout: 245 seconds]
wootehfoot has quit [Read error: Connection reset by peer]
<mcrod>
there is no such thing as a good IDE, I'm convinced
<gog>
hi
* gog
mews at geist
<mcrod>
hi
<geist>
yay kitty
<sham1>
:e
<sham1>
:3
<gog>
:3
<geist>
i kicked my meatspace cat this morning accidentally on the bed, and shes angry at me
<gog>
nooooo
<geist>
so i need another cat
<gog>
poor baby
<sham1>
:(
<gog>
bring her treats and pets and she'll forgive you maybe
<mcrod>
when I move
<geist>
she also has an exceptionally short memory
<mcrod>
there is a samoyed coming with me
<gog>
:o
<gog>
shoober
<mcrod>
i was hoping it'd be a red panda
<geist>
but yeah i need to find her, she's probalby sulking somewhere i the house right now
xenos1984 has joined #osdev
<sham1>
I'm sad now
* gog
gives treats to sham1
<mcrod>
does... does gtest not have a way to give arbitrary test output?
<mcrod>
you have to use stuff in the ::testing::internal namespace
<mcrod>
oh, they got rid of it.
<sham1>
gog: thx
<geist>
yeah i've worked with like 4 forks of gtest, including an old one that was jammed into LK years ago
<geist>
and i think we had like 3 copies in fuchsia
<geist>
though probaby down to just 2: user space and the kernel one (derived from the LK one derived from gtest 10 years ago)
<mcrod>
still insane, you can only see std::cerr output, everything else is nulled
<mcrod>
maybe I want to say "Loaded file 'x' successfully!"
<mjg>
dude unit test suites for systems code are so shite
<bl4ckb0ne>
mcrod: theres no good IDE
<mjg>
so much bloat all around making it quite problematic to isolate what the test is doing
<bl4ckb0ne>
only good text editors
<mcrod>
CLion would be perfect if it had _basic_ features
<mcrod>
e.g., specifying a custom clang-format binary, respecting gtest working directory declarations in CMakeLists
<mcrod>
right now if you go and use a .clang-format that was generated by the latest LLVM version, formatting fails
<mcrod>
that's fine I say, so let me define a custom one
<mcrod>
can't.
<mcrod>
pure insanity
<mcrod>
and they charge money for it
<bl4ckb0ne>
proprietary software innit
<bl4ckb0ne>
install gentoo
<mcrod>
people have bitched about everything i've bitched about
<mcrod>
except their response time is tremendously awful
<mcrod>
adding custom clang-format support is something an intern could do in a few weeks
<geist>
clang-format i have a relationship with (in a generally negative way)
<geist>
we started using it in fuchsia years ago, and i remember at the time asking for feature this and that
<geist>
and we got straight up pushback saying that that's precisely not what clang-format is for
<geist>
there's a mentality that the entire point of it is that it's largely unconfigurable, because the mentality is 'you use one of the predefined styles and the whole point is there's only a finite number of them'
<geist>
i dont like that way of thinking but it's very googly
<geist>
ie, formatting code the whole point is not to like it, but that it's uniform across the whole codebase
<mjg>
i can get behind that tbh
<geist>
it's not something i'd use with my hobby stuff, but there is a point to it in a large, work codebase
<geist>
which i've grudgingly accepted as probably a good idea
<mjg>
take 3 programmers and get 4 opinions on how to format code
<geist>
no ambiguity
<geist>
right
<mcrod>
i just like the idea of "this is what people have accepted, just do it for me"
<mjg>
at this point i roll with whatever which i don't find unreadable
<mjg>
like the gnu shite
<geist>
the othr realization i had at some point is that clang-format is actually less powerful than a lot of other formatters (like astyle) because it explicitly can only mess with space (and maybe wrap comments)
<geist>
it cannot add/remove braces or whatnot
<geist>
it can only ove things around with whitespace
<gog>
adding and removing braces shouldn't be done by a formatter anyway
<mcrod>
huh, never heard of astyle
<geist>
but it's more powerful in the sense that it does a deep parse of the source so it is pretty much 100% correct
<geist>
yeah i use astyle for my personal stuff. it's more likely to make a mistake but you can also tell it to do things like add/remove braces, etc
<geist>
what i generally dislike about clang-format for personal stuff is none of the predefined styles do exactly what i want and at least when i looked at it closely (which was a few years back) it was still a bit wishy washy about a few things
<mcrod>
i usually just -style=google and forget about it
<geist>
yah, naturally that's what we do at work, but still
<geist>
the only thing that really drives me nuyts about that style is the 2 space indents, i'll still fight to the death over 4, but that ship sailed at google long ago
<geist>
so not a battle worth fighting
<mjg>
rust is 4?
<mcrod>
i love the 2 space indents
<mcrod>
but that's just me
<mcrod>
if 4 is there so be it
<mcrod>
more than 4 and i will be sad
<mjg>
i mostly oppose szLolBuf and similar naming conventions
<mjg>
so anything windows is out
<geist>
dunno. honestly i've gotten a bit better with 2, but my vision is just not as good as it used to be, i like relatively large fonts and 4 space to make it easier to grok
<geist>
and yeah more than 4 and it starts to get bad for deeply nested stuff, especially if you try to hold to an 80 col limit (which we also do at work)
<mcrod>
at work we tend to just... sort of follow line limits, then we don't
<mcrod>
we don't use a linter
<geist>
yeah clang-format wants a limit so it cna wrap
<mcrod>
which is one of the reasons why I want a nice automated tool that fixes this shit for me and I don't have to care
<geist>
i think we settled on 100 though
<mcrod>
also my dream of a clang based only project is basically gone
<geist>
but some folks legitimately pointed out that though they're not using vt100 terminals, they like to use tiled window managers and end up fixing their temrinals to a finite size
<geist>
so i give them that
<mcrod>
(work)
<mcrod>
some of the chips we have aren't targetable by clang
<mcrod>
not that we couldn't use it to build one part
<mcrod>
but it's a much harder to sell that we need TWO compilers
<geist>
yeah, clang is still fairly weak in the architecture support area
<geist>
though that's solving itself by most things just switching to riscv
<geist>
oh reminds me i should look into the new BeagleV thing that ws announced
<mcrod>
is stmicroelectronics going to RISC-V any time soon
<geist>
looks like it's using a C910, but that's *fairly* standard
<geist>
ST might be the holdout for now
<geist>
i guess what i really mean is for the non standard arches that a lot of companies have (ie, not arm) a lot of them are switching to riscv
<geist>
so something like ST will probably stay on ARM for a while
<mcrod>
yeah, we use ST's STM8 chips for some stuff
<geist>
yeah surprisied those are still around to be honest
<mcrod>
one thing I'll give IAR credit for is the sheer breadth of what they can target
<geist>
except for backwards compatibility with exisdting stuff, i don thtink the STM8 has any real advantage
<mcrod>
it doesn't
<mcrod>
it is a deeply annoying processor to work with
<mcrod>
the answer I got was "shitload of analog"
<geist>
yeah but tat's not an artifact of the architecture, just the soc they wrapped it in
<mcrod>
right
<mcrod>
ultimately the whole thing should've been ARM based through and through
<geist>
i suppose one can argue on the TI side that they have some DSPs that are still more targetted than ARM, but i suspect a M4 could probably do anything that any of the TI DSPs can do and better
Vercas has quit [Remote host closed the connection]
Vercas6 is now known as Vercas
linear_cannon has quit [Ping timeout: 246 seconds]
linear_cannon has joined #osdev
<gog>
hi
Yoofie has quit [Read error: Connection reset by peer]
<sham1>
hi
innegatives has joined #osdev
<innegatives>
How do you load a higher half kernel with UEFI?
<Ermine>
hi gog, may I pet you
<gog>
yes
<gog>
innegatives: you load it to memory, map that memory then jump there
* Ermine
pets gog
* gog
prr
<innegatives>
gog: how do you tell UEFI to load it at higher half tho?
<gog>
you don't
<gog>
uefi only works with physical addresses
<Ermine>
Physical location isn't that important
Yoofie has joined #osdev
<gog>
you make the memory mappings
<Ermine>
As long as you set correct page table
<gog>
ok, uefi does work with virtual addresses for runtime services mode and you have to tell it that it's being remapped
<gog>
but
<gog>
that's not relevant
<Ermine>
There are services to set maps
<Ermine>
Aren't maps initially set to identity?
<innegatives>
gog: how come 0xffffffff80000000 is never mentioned in your kc.ld?
<gog>
the kernel is position-independent
<gog>
its entry point is a self-relocation routine
<gog>
Ermine: yes
slidercrank has joined #osdev
<innegatives>
god, ill never get hang of this
<mcrod>
if you tell yourself that, you won't
<innegatives>
how does dynamic relocation work? what exactly it relocates? arent there many addresses peppered through code that need to be fixed, how is that done efficiently?
zxrom_ has joined #osdev
<Ermine>
Relocation is described in "OS from 0 to 1"
zxrom has quit [Ping timeout: 252 seconds]
innegatives has quit [Quit: WeeChat 3.5]
<gog>
¯\_(ツ)_/¯
<mcrod>
gog there once was a man from peru, who dreamed he was eating his shoe; he woke up with a fright in the middle of the night and found that his dream had come true
<gog>
:o
<gog>
sleepeating ur own shoe
<gog>
dang
wootehfoot has quit [Read error: Connection reset by peer]
zxrom_ is now known as zxrom
DragonFox has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
Vercas7 has joined #osdev
LittleFox has joined #osdev
foudfou_ has joined #osdev
Vercas has quit [Ping timeout: 240 seconds]
Vercas7 is now known as Vercas
foudfou has quit [Ping timeout: 240 seconds]
<gog>
hhh "worlds okayest programmer"
<gog>
need that mug
* bl4ckb0ne
mugs gog
<gog>
>:|
<gog>
how dare
<zid>
That means he plied you with mug I think
<zid>
ask for a tracking number
<bl4ckb0ne>
isnt that what you wanted?
<bl4ckb0ne>
your tracking number is 12
<zid>
I have a pirated made in abyss mug
Turn_Left has quit [Read error: Connection reset by peer]
terminalpusher has quit [Remote host closed the connection]
cloudowind has joined #osdev
* cloudowind
greets everyone
<gog>
hi
<mcrod>
hi
<zid>
gog when are we pear programming, I need more pears
<gog>
i'm a peach sorry
<zid>
you can't program peaches
<zid>
it's pears or nothing
<gog>
sure you can
<cloudowind>
what's going on
<bl4ckb0ne>
peaches come from a can
<cloudowind>
were there a language named pearl
<bl4ckb0ne>
they were put there by a man
<bl4ckb0ne>
in a factory downtown
<geist>
someone gonna move into the country?
<bl4ckb0ne>
yes
<cloudowind>
country life is beautiful slow quite peacefu
<bslsk05>
'The Presidents of the United States of America - Peaches (Official HD Music Video)' by The Presidents of the United States of America (00:03:15)
ih8win8 has joined #osdev
cloudowind has quit [Quit: This computer has gone to sleep]
<cloudowind>
everyone went quite suddenly what happened
<gog>
it's late
<cloudowind>
ah yea it is hey
<bl4ckb0ne>
millions of peaches
<bl4ckb0ne>
peaches for free
<cloudowind>
beaches?
<cloudowind>
never seen anyone before dreaming of peaches except pregnant woman
<ih8win8>
and mario
<bl4ckb0ne>
and bowser
<cloudowind>
peaches looks like boobs maybe he's sub consciousness doing a trick to him
<cloudowind>
maybe he just wants some milk who knows fkn
<ih8win8>
Is there any simpler, easier way of PXE booting your kernels besides using dnsmasq?
<kazinsal>
windows server? idk, that's what I have in my environment
<cloudowind>
does windows still coming up with servers
<geist>
i've pxe booted grub and then have that fetch the kernel
<zid>
what could be made easier than "install some software on a machine on the LAN" to begin with?
<geist>
basically lets me net boot my stuff on another machine
<cloudowind>
haven't seen windows server after 2000
MiningMarsh has quit [Ping timeout: 245 seconds]
<geist>
i still have to set up the tftp server and whatnot, but it works pretty well
<kazinsal>
yeah, that's what I do
<kazinsal>
gets the job done
<ih8win8>
We use Windows Server 2019 at work.
<Ermine>
I've seen windows server in 2018
<zid>
smh half my friend's list is playing cool games and nobody has invited me to scream at them and call them bad
<ih8win8>
It's basically just Windows 10, server edition.
<cloudowind>
yea apperently there is win server 2022
<ih8win8>
I never thought of Windows as a great server OS.
<zid>
(It isn't)
<zid>
can you do ip masquerade on windows yet
<ih8win8>
And nowadays, you can run MS SQL Server, ASP .NET, and all the other Microsoft stuff on Linux.
<Ermine>
I think the most useful part of windows server is active directory
<zid>
linux's network stack is a massive clusterfuck at least, so there's room for improvement
<Ermine>
My granny has fax lying around, so I want to try to configure fax server one day
<ih8win8>
I don't think it's that bad. Audio on Linux is the worst part for me.
<zid>
ih8win8: it very quickly becomes completely opaque as soon as you want to do something complicated
<ih8win8>
The BSDs do networking better.
<zid>
linux has a lot of 'ether' that it nets :P
<zid>
like, make a virtual bridge, that lives in said ether, and you can sort of pretend it's a real device but not really, because it lives in 'the stack' and gets to see things it shouldn't so you have to attach it with routing rules, and not phy rules
<Ermine>
Sortix network stack is da best
<zid>
like, ideally I'd want to add a fake device and just say "It's on port 4 of the virtual hub that is the stack" or whatever, but instead I have to do it via vlans or subnets or something? it's messy
<zid>
(audio actually DOES use this concept and it's way easier, 'pins' in a lot of audio stack parlance)
<zid>
because people realize setting up home audio equipment doesn't use routers, it uses cables, why would we invent audio routers, they're just a tool that happens to solve the problem, not the natural one imo
<Ermine>
There's no layering like in TCP/IP in audio world?