<nikolapdp>
i am now tempted to try and write sqlite based fs for raw block devices
<dostoyevsky2>
nikolapdp: I tried storing trees in sqlite before and then query it with recursive CTEs but it's really hard to generate and became quite slow...
<nikolapdp>
eh just run multiple queries :P
<dostoyevsky2>
nikolapdp: I was storing ASTs
<nikolapdp>
really, in an sql database?
<nikolapdp>
why
<dostoyevsky2>
so multiple queries would be even slower
<nikolapdp>
heh fair
<nikolapdp>
i guess it's not as big of a deal for an fs
<dostoyevsky2>
nikolapdp: I mean the transactions can be really cool with sqlite... you can prototype a lot of fs things so easily
<nikolapdp>
and you don't have to worry about fs corruption
<nikolapdp>
because sqlite is handling that on its own
<dostoyevsky2>
nikolapdp: I have a project where I can query ASTs like this: `dir("vendor/github.com/go-nfs").roots_for("source_file").select_nodes_recursive(M{"kind": "identifier", "v": "PmapPort"}).rvalues().replace_code(`__patched__nfs_port()`)'
<dostoyevsky2>
nikolapdp: So I store the ASTs in a k/v store: boltDB .. but in the beginning I stored the ASTs in sqlite
<nikolapdp>
why store an ast in a database tjpihj
<nikolapdp>
*though
<nikolapdp>
and not just a hashmap
<nikolapdp>
or as a normal tree
<dostoyevsky2>
BoltDB is a persistent hashmap
<dostoyevsky2>
But e.g. indexing the AST of the linux kernel take like 10mins ... but once indexed I can run queries and generate patches in seconds
<nikolapdp>
oh so you're writing a code search tool
<bslsk05>
'OffensiveCon18 - Niko Schmidt, Marco Bartoli, Fabian Yamaguchi - Field Report on a Zero-Day Machine' by OffensiveCon (00:53:54)
<nikolapdp>
interesting
<dostoyevsky2>
nikolapdp: I wanted to be able to have AST aware patches... so I can write a patch that is based on the actual AST... like replacing all references to a an identifier called PmapPort to my own function
<nikolapdp>
sounds like it could be useful
<dostoyevsky2>
And for the Linux kernel I thought about adding pledge/unveil that way
<nikolapdp>
oh how would that work
<dostoyevsky2>
There have been some people that tried porting pledge/unveil to linux, like: https://github.com/gnoack/seccomp-scopes ... but they haven't been maintained after that... and I could maybe turn them into more general patches with my AST queries... but I guess it also depends on how much the linux kernel is changing
<bslsk05>
gnoack/seccomp-scopes - Make Linux computing safe (1 forks/9 stargazers/MIT)
<dostoyevsky2>
But would be great if I still could easily update kernel versions, even though I have pledge
<nikolapdp>
yeah interesting idea
<nikolapdp>
the source could change but the resulting ast might be identical
<nikolapdp>
so in theory the patch could still be compatible
<dostoyevsky2>
nikolapdp: Would really like to see an FS based on sqlite... you could do so many interesting things with it...
<nikolapdp>
heh yeah, we'll see
<nikolapdp>
like cleaning up unused files is just "drop from files where id not in directory_mapping"
<nikolapdp>
or whatebe
<dostoyevsky2>
I wrote an nfs daemon the other day... it's an easy entry point for writing a custom filesystem
<dostoyevsky2>
nikolapdp: yeah, stuff like that... could be so powerful
<nikolapdp>
i *think* that sqlite can be made aware of file sizes
<nikolapdp>
so it might be trivial
<nikolapdp>
s/is think/i think
<dostoyevsky2>
sqlite also can easily have plugins for full text search and the like
<nikolapdp>
yeah this is quite an interesting idea
<nikolapdp>
pluggable fs
<dostoyevsky2>
json support is also builtin
<nikolapdp>
heh json for additional file attributes for example
<nikolapdp>
which work with plugins
<dostoyevsky2>
you could query files containing json directly in a "find"
<nikolapdp>
yeah interesting ideas
<dostoyevsky2>
if it's not performing well you could just migrate the whole FS to a new architecture in one transaction, do a backup before that... and see if that improves it... add indexes for things that are too slow
<nikolapdp>
or you could just cache things like normal fss
<nikolapdp>
and you can use transactions for consistency guarantees
<dostoyevsky2>
sqlite has this builtin cache like an LRU k I think
<nikolapdp>
eh i forgor
<dostoyevsky2>
I think you can set the cache size when you open an sqlite database
<dostoyevsky2>
you could serve the whole filesystem over http... show it inside a browser
<dostoyevsky2>
because SQLite compiles to wasm
<nikolapdp>
eh sqlite search isn't the best
<dostoyevsky2>
Try using WAL mode, which means that all changes will be appended to the database file... it will never overwrite existing data... that way you could e.g. play around with multi-threaded access to the FS, only blocking when you are actually appending
<heat>
you can very very trivially write a manual http request in curl
<nikolapdp>
yeah curl whatever.org/file
<bslsk05>
whatever.org: 500 Server Error
<nikolapdp>
doesn't count
<heat>
GET / HTTP/1.1\r\n\r\n
<dostoyevsky2>
And then you can just implement the nfs calls with calls to sqlite...
<heat>
this is a valid GET
<nikolapdp>
dostoyevsky that's really not a lot
<nikolapdp>
heat or you could do tftp which has been used for netbooting since netbooting was a thing almost
<heat>
boss you're arguing with the wrong person, i'm not telling you why they do it, i'm telling you they do it
<dostoyevsky2>
nikolapdp: And when you want the FS in your own kernel, you have the same calls that you have implemented in the nfs api... you just now call them directly in your kernel + you add VFS for your raw disk
<nikolapdp>
also tftp is udp
<nikolapdp>
so much much much simpler
<heat>
as if uefi doesn't include its own full network stack anyway
<heat>
also, consider that http can do TLS
<nikolapdp>
so uefi now needs tls to boot too
<heat>
i would guess tftp doesn't
<nikolapdp>
great
<heat>
haha
<heat>
boss, the traditional efi firmware has like 3 copies of openssl
<nikolapdp>
dostoyevsky2 heh yeah, not wrong
<heat>
one for PEI, one for TLS in the network dxes, one for secure boot in DXE
<nikolapdp>
heat: well traditional efi sucks
<dostoyevsky2>
nikolapdp: You can easily compile Go code to C with cgo... so you could embed that code in your C kernel
<Ermine>
Uefi would neet cert store for tls
<nikolapdp>
thought that was clear
<nikolapdp>
that too
<heat>
openssl does all the crypto efi needs
<nikolapdp>
with what certs
<nikolapdp>
i guess if your machine is too old, it just won't boot
<heat>
db
<nikolapdp>
db
<nikolapdp>
sqlite fs
<heat>
no, the efivar db
<heat>
efi fw has a boatload of keys in it
<heat>
secure boot ya know
<nikolapdp>
also you can write chacha20 in like 20 lines of c
<dostoyevsky2>
And NFS vs Fuse: E.g. on Macos Fuse doesn't work anymore... with nfsd+go you can easily deploy your FS on Windows/Linux/OpenBSD/Macos ... also FUSE is much harder to implement than the NFSd, lots of multi-threading stuff in my FUSE code, and the nfs api is just a set of simple api calls
<nikolapdp>
it's pretty trivial to encrypt the files over tftp
<Ermine>
this is to verify boot images
<heat>
well, yes. if you need a certificate for TLS you just create one
<nikolapdp>
dostoyevsky2 fuse does work though
<heat>
as a normal client does
<Ermine>
do they use the same set of certs for tls?
<heat>
no
<nikolapdp>
i've used sshfs in my mac vm
<heat>
for a connection it'll create a certificate, like you'd see in onyx
<heat>
wait, if you mean the trusted certs, i don't know how they would do it
<dostoyevsky2>
> The main motivation for this project is to replace macfuse (https://osxfuse.github.io/) that implements its own kext to make fuse work. With each version of macOS it's getting harder and harder to load kernel extensions. Apple strongly discourages it and, for this reason, software distributions that include macfuse are very difficult to install.
<bslsk05>
osxfuse.github.io: Home - macFUSE
<dostoyevsky2>
Apple stopped giving out signatures for kernel extensions
<heat>
i guess you can probably embed your own certs with the build, but this is way outside my expertise
<nikolar>
jij
<nikolar>
huh
<nikolapdp>
btw dostoyevsky2, i don't consider fuse dead because mac doesn't support it
<Ermine>
btw is pei a part of edk2 ?
<heat>
yes parts of PEI are in edk2
<heat>
the PEI core and various other modules
<nikolapdp>
pei?
<heat>
pre-efi initialization phase
<nikolapdp>
ah
<heat>
part of PEI is pre-memory
<dostoyevsky2>
nikolapdp: Well, I for one am glad I can now test my FS via nfsd and don't have to work on my FUSE FSes anymore.. I don't know how many hours I spent of #fuse trying to debug things...
<nikolapdp>
really
<heat>
hashtag fuse
<heat>
write a real kernel driver
<nikolapdp>
i've only written a tmpfs in fuse but how i've never had issus that fuse caused
<Ermine>
It's a shame that bearssl got abandoned. Could be a good fit for efi stuff
<nikolapdp>
did it?
<heat>
yes
<heat>
they're trying mbedtls for PEI stuff
<dostoyevsky2>
Ermine: can't one use Letsencrypt these days to generate all kinds of certificates?
<nikolapdp>
their page mentions nothing of being abandoned
<Ermine>
nikolapdp: last commit was more than a year ago
<Ermine>
dostoyevsky2: you need to store trusted certs somehow
<heat>
16 commits in 4 years
<nikolapdp>
nice rate
<dostoyevsky2>
Ermine: hmmm... if it's for EFI you store the certs in your OS image, no?
<nikolapdp>
dostoyevsky2 how would you go about writing a nfsd for a custom fs
<heat>
no
<Ermine>
if you boot over https the os image is far away
<bslsk05>
pkg.go.dev: sqlite package - modernc.org/sqlite - Go Packages
<Ermine>
also, s/bootp/dhcp/
<heat>
and then you can even use a regular old http server for booting
<nikolapdp>
something about booting off of http{,s} rubs me the wrong way
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<dostoyevsky2>
nikolapdp: I also wrote an sftp server it looks very similar to the nfs api... It's crazy how easily you can implement those servers in Go... I haven't tried yet to use https://github.com/pojntfx/go-nbd to simulate a hdd for qemu, but it seems also very easy to do
<bslsk05>
pojntfx/go-nbd - Pure Go NBD server and client library. (19 forks/335 stargazers/Apache-2.0)
<dostoyevsky2>
EFI being able to make tls requests... that sounds like a lot of code
<heat>
efi is 16MB compressed
<dostoyevsky2>
Do they have a tcp/ip stack in there?
<heat>
yep
<Ermine>
lwip lwip lwip
<heat>
not lwip
<dostoyevsky2>
and then I suppose they rarely update the TLS crypto methods?
<dostoyevsky2>
were they vulnerable to heartbleed?
<Ermine>
on ancient machines never
<heat>
idk
<heat>
you should expect security updates to be very very rare
<Ermine>
My old pc latest firmware was shipped in 2014
<dostoyevsky2>
how well do they parse x509 certificates?
<dostoyevsky2>
I mean the CVEs for that stuff are frequent, just so many variables
<heat>
the security situation around efi is a complete trashfire
<heat>
no two ways about that
<dostoyevsky2>
So couldn't you just generate a client+ca in openssl and then tell uefi to use the client cert and let your server use the CA... and then do the request... or does UEFI only support public TLS and you'd need to buy something from verisign, or use letsencrypt?
<dostoyevsky2>
I'd expect you could install those certs similar to how you install grub
<heat>
lol
<heat>
it's all in firmware volumes you can't touch unless you want to brick your fw as the signatures fail to match up
<dostoyevsky2>
so UEFI has their own root CA for their certificates?
<heat>
i don't know how they do things
<dostoyevsky2>
And you'd need to have something that signed by their CA to boot via https?
<bslsk05>
unix.stackexchange.com: boot - Can grub load a kernel from HTTP? - Unix & Linux Stack Exchange
<dostoyevsky2>
Just enable https in grub... ;-)
Arthuria has quit [Ping timeout: 268 seconds]
<dostoyevsky2>
nikolapdp: I'd say a lot of vpses boot via qemu/kvm with a custom nbd driver over the network which simulates a local disk
<nikolapdp>
yeah i can see that happenin
<dostoyevsky2>
nikolapdp: if you have WAL in sqlite... you also get free time travel
<dostoyevsky2>
just remember the offsets
<dostoyevsky2>
offsets/filesizes
<nikolapdp>
for that, you probably need to patch sqlite
<dostoyevsky2>
Yeah, I am not sure how append only sqlite really is... but I think timetravel could be possible
<dostoyevsky2>
Or snapshots where you just remember two numbers
<dostoyevsky2>
nikolapdp: In your disk driver just return the old filesizes ;)
<dostoyevsky2>
or disk sizes
<dostoyevsky2>
disk driver/vps
<dostoyevsky2>
*vfs even :)
<nikolapdp>
(:
gorgonical has quit [Ping timeout: 255 seconds]
Arthuria has joined #osdev
edr has quit [Quit: Leaving]
Arthuria has quit [Ping timeout: 260 seconds]
frkazoid333 has quit [Read error: Connection reset by peer]
frkazoid333 has joined #osdev
srjek has quit [Ping timeout: 240 seconds]
Arthuria has joined #osdev
theruran has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
gog has quit [Quit: byee]
asarandi has quit [Ping timeout: 272 seconds]
dasabhi has joined #osdev
asarandi has joined #osdev
<dasabhi>
heat: hey i know you spoke about xv6 having different page table mappings for user vs kernel space and found it weird
<dasabhi>
i am just on that chapter right now i am trying to figure out why its strange
<dasabhi>
i initally though the kernel didn't even have page tables turned on for itself, thinking why would the kernel even need it
<dasabhi>
but you is it strange that xv6 does this?
<dasabhi>
i dont know what the norm is on this topic
<heat>
ok so pre-meltdown you usually had the kernel mapped together with userspace. because it's simply way faster to not switch page tables (to some kernel page tables) when going through the user - kernel barrier
<heat>
or when copying stuff from user memory, etc. no switching = lots faster
<clever>
yeah, there was a bit in the paging tables, that says if the page is user or kernel only, and it turns out it didnt do its damn job :P
<heat>
post-meltdown they figured out you could blackmail the CPU into giving you data through that privilege barrier. so a common meltdown mitigation is to have a copy of the page tables that has all user memory + a kernel trampoline mapped, and a copy for the kernel, with the full userspace and kernel mapped, that the trampoline switches to
<dasabhi>
what do you mean by 'kernel mapped together with userspace', can you elaborate a little
<clever>
dasabhi: having a single paging table, that maps both kernel and userland and using the "kernel only" flag to protect the kernel side
<Ermine>
everything is paged, so kernel needs page tables as well
<heat>
the kernel is mapped on its addresses, user memory is mapped on its addresses
<clever>
so when a syscall is done, the cpu switches to kernel mode, and the entire kernel is immediately accessible
<heat>
not sure if there's a better way to explain it
<zid>
It'd suck to have to locate your kernel in memory via its physical address
<heat>
one of the copies doesn't have the full kernel mapped, only the trampoline, to avoid exposing sensitive kernel data through meltdown. the other copy has the full kernel mapped as well
<Ermine>
program sees memory like --[program pages]---[kernel pages]-
<heat>
user memory is mapped in both copies
<clever>
zid: ive been using nommu linux the last few weeks, and funnily enough, i had a bug where i dropped a copy of the dtb in the middle of the kernel binary, resulting in illegal opcode errors
<kof673>
> it's not like http booting isn't a thing > who does it pxelinux IIRC and...if you are crazy enough to do it over the public internet, should be able to https, but also there is a way to sign the kernel/binary you download and make sure whichever certificate signed it
* kof673
slaps nikolapdp with a piece of cheese
<zid>
see, told you it sucks :P
<zid>
I bet the copy_from_user checking is.. hairy too, if supported
<bslsk05>
github.com: not-os/ipxe.nix at master · cleverca22/not-os · GitHub
<zid>
or do you just say fuck it, no security on no-mmu
<kof673>
:) </basilisk>
<clever>
kof673: this validates signed files before executing them with ipxe
<clever>
zid: yep, no security, and an MMU wouldnt have helped, the fault was in the bootloader region
<clever>
it would write the kernel, initrd, and dtb to regions in ram
<clever>
and it put the dtb 64kb past the end of the initrd
<clever>
but, if there was no initrd, that was 64kb from 0, the start of the kernel.....
<zid>
It'd be a hilariously annoying pain in the arse to do security, sounds fun
<zid>
you'd need *some* hardware mechanism, obviously, but trying to do it not-with-addresses sounds 'fun'
<zid>
segmentation, mtrrs, something like that
<clever>
the MPU in cortex-m can probably help
<clever>
it doesnt change the addressing, only faults if you go outside of the fence
<clever>
but i'm on a nommu rv32 emulator, so i cant use arm toys
<dasabhi>
heat: interesting okay i need to get my head around this
<zid>
dasabhi: You can think of it like that the kernel is a special .dll loaded into every process
<zid>
that can only be jumped to via a special instruction
<geist>
are you in machine mode? you could use the memory protection regions there
<clever>
zid: i think in the win 3.11 days, the kernel literally was exactly that
<clever>
geist: machine mode, but i suspect the emulator doesnt support them, and it wouldnt have helped anyways, because it was the host doing memcpy's into the guest ram
<geist>
ah
<zid>
The kernel isn't running the programs, the programs are the entire cpu runtime, and the programs *temporarily become the kernel for a bit* if you do a syscall
<dasabhi>
okay i get the original idea, one large page table that does mappings for user and kernel, pretty fast before spectre and meltdown
<clever>
originally, there was some messy code, to track the addr/size of the kernel, initrd and dtb
<clever>
and the dtb would start at `initrd_addr + initrd_size + 64kb`
<dasabhi>
no need to load a second page table
<clever>
but, when there is no initrd, then the dtb starts at 64kb....
<clever>
and it doesnt respect where the kernel is!
<dasabhi>
ah but now, we want them seperate, thats why xv6 does this double page table thing
<dasabhi>
i think it will make more sense when i get to the pagetable lab and see the setup of the pagetables myself
<heat>
well in riscv it's double silly because meltdown was never a thing on riscv
<clever>
ive already rewritten it, to have a dumb allocator, where you just request size bytes, it does `addr += size;` and returns the old addr
<clever>
so i can then just allocate space for the kernel, initrd, and dtb, and not have to worry about where the previous stage ended
<dasabhi>
its interesting because they ditched x86 in 2019
<dasabhi>
okay real dumb question, why does the kernel need paging on?
<dasabhi>
why not just touch any chunk of physical memory
<zid>
on x86, because it's globally on or off
<dasabhi>
ahhhh
<zid>
and it's just.. not a hardship at all
<dasabhi>
so you cant just turn it on or off between kernel and userspace
<clever>
dasabhi: turning the mmu off is costly, and then you have added overhead for accessing anything in userland, and all of the read-only and no-execute flags stop working
<zid>
it's *preferable* to have it on
<clever>
on arm, the d-cache also relies on the MMU
<dasabhi>
got it, just saves you energy
<heat>
virtual memory is infinitely useful
<zid>
You get to do things like knowing if a page is a kernel or user page just by checking the top bit of the address
<zid>
rather than walking a bunch of allocator data structures
<zid>
and like clever says, a lot of features tend to be built into the paging structures
<zid>
on x86 that includes the NX / W^X bit
<zid>
so now the code is both harder to write, runs slower, and your stack is suddenly executable :p
<dasabhi>
that makes a lot of sense, ty :)
<clever>
and in my case, any process can write over the data for any other entity (kernel and other processes), because the mmu just doesnt exist
<zid>
yea and you still need SOME mechanism to stop that
<zid>
just using the paging you're already doing is a no-brainer for that
<zid>
rather than having user-space using paging, and kernel space doing something else
<clever>
yep
<kof673>
i've said before i have about 7-8 amd ~586 SOCs that have separate memory permissions, claims to be faster, and can be used in combination with the normal mechanisms. anyways...have no idea how common that is, or for "embedded" stuff but you only get something like 8 areas IIRC lol
<heat>
cortex-m has that kind of stuff iirc
heat has quit [Ping timeout: 240 seconds]
dasabhi has quit [Quit: Lost terminal]
pebble has joined #osdev
geist-sdf has joined #osdev
pebble has quit []
goliath has joined #osdev
gbowne1 has quit [Quit: Leaving]
xvmt has quit [Remote host closed the connection]
gsekulski has joined #osdev
GeDaMo has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<mjg>
i think ed being operational is the end game innit
<ddevault>
I want a working C toolchain and a Hare toolchain, and doom
<ddevault>
then it's Unix
<ddevault>
I also need enough termios to implement getpass(3) (i.e. NOECHO) so I can stick login(1) in there and make it properly multi-user
<GreaseMonkey>
a note on doom: you can use the original source release but it does need a few 64-bit fixes, although IIRC it's nothing particularly drastic
kazinsal has quit []
<ddevault>
I was going to start from doomgeneric
<ddevault>
which is how I ported it to my last OS
<GreaseMonkey>
yeah that's probably a much better choice
<ddevault>
need curses and a more complete terminal
<ddevault>
deferring all of that until I can refactor the vt and fb and such
<nikolapdp>
did you abandon your libvterm efforts
<ddevault>
I stuffed them on a branch
<ddevault>
will resume after refactoring, also going to try libtsm
<nikolapdp>
i wrote a terminal emulator from scratch, vim almost worked
<nikolapdp>
got messed up when scrolling down
<nikolapdp>
heh
<ddevault>
the issue is that my vt code includes, all in one place, framebuffer code, early framebuffer console, and full fledged post-MMU double-buffered vt
<ddevault>
I need to split these into three separate things
<nikolapdp>
yeah sounds messy
<nikolapdp>
probably isn't too bad to split
<ddevault>
yeah, we'll see
<ddevault>
going to refactor the framebuffer out into /dev/fb first, which will also progress towards doom
<nikolapdp>
DOOM
xenos1984 has joined #osdev
gsekulski has left #osdev [#osdev]
kspalaiologos has joined #osdev
node1 has joined #osdev
<node1>
Does anyone know why RCU Stalls and Soft Lockups happens?
gsekulski has joined #osdev
<Mutabah>
node1: Contention
<node1>
?
<node1>
what Contention?
<Mutabah>
Wait, was this a specific question or just in general how that can happen?
<Mutabah>
In general, read-copy-update stalls happen when there's contention - multiple threads/cores changing the value at the same time
<node1>
so it's kernel related issue?
<node1>
I'm just trying to find the root cause of the issue? Or maybe i think it's processor related issue
<nikolapdp>
?
gmodena has joined #osdev
srjek has joined #osdev
node1 has quit [Quit: Client closed]
bauen1 has quit [Ping timeout: 255 seconds]
navi has joined #osdev
<netbsduser>
node1: i don't know what a soft lockup is supposed to be, sounds oxymoronic
<mjg>
it's with interrupts enabled
<netbsduser>
the RCU deferral mechanism cannot do anything if kernel mode stays operating at high IPL
<netbsduser>
or with either interrupts or preemption disabled rather as linux doesn't have the IPL concept
<mjg>
rather an off question
<mjg>
anyhow the kernel should have bumped some backtraces along with the warning
<zxrom>
Who here uses the OS of their own design as the OS of the main workstation?
<netbsduser>
zxrom: unless linux torvalds, dennis ritchie, or david cutler are among us, probably no-one
<mjg>
i'm deniss ritchie, AMA
<GeDaMo>
What's the afterlife like? :|
<mjg>
it is not, i'm reincarnated
srjek has quit [Ping timeout: 256 seconds]
<sham1>
Technically reincarnation is still an afterlife. It's just one where you also happen to be alive as well, in a different body
* mjg
hits blunt
<mjg>
this makes you wonder though, does getting reincarnated as a php developer mean you were a bad person
<mjg>
or you were a good person who was wronged big time and are now getting revenge by inflicting programming damage?
<kof673>
opinions differ, incarnation == bodily, some philosophies all that is "bad". egypt resurrected in spirit aka magic red stone put on the flesh of ra
<mjg>
subscribe to my newsletter for more hard-hitting questions
<kof673>
so sometimes it is more akin to a ghost that returned to haunt, did not make the higher level lol
<mjg>
in that case i can tell you all the php folk are defo in for another round
kspalaiologos has quit [Quit: Leaving]
<kof673>
"earth" is bad in alchemy land. even "catholic" "saint jerome" the "saints" only got 'heaven". 'gnosticism' things returned to their source..."the meek" were all people who did not make the higher level lol
wlemuel has joined #osdev
* kof673
inserts frogurt guy: the resurrected php is also cursed "that's good!" "that's bad."
CryptoDavid has quit [Quit: Connection closed for inactivity]
m257 has joined #osdev
edr has joined #osdev
spareproject has joined #osdev
bauen1 has joined #osdev
<zxrom>
Oh guys, I don't believe in incarnations and afterlives :D
leon has quit [Ping timeout: 255 seconds]
<kof673>
what about php :) ?
agent314 has joined #osdev
leon has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
bauen1 has joined #osdev
CryptoDavid has joined #osdev
heat has joined #osdev
SGautam has joined #osdev
<kof673>
a serious answer is i purposely limit dependencies, including build system. so that will take longer, but call it a "complexity level" keep things mind-numbingly simple
<kof673>
and to a point, can include editor as well, etc.
<kof673>
that is not to say i do not want more "advanced" things, but a simple "core"
agent314 is now known as agent314_brb
m257 has quit [Quit: Client closed]
m257 has joined #osdev
gsekulski has quit [Ping timeout: 264 seconds]
<kof673>
"of their own design" i do not purposely "break" stuff...if i ever get that far, "compatibility layers" sure, .... but a crappy 10% functional native port/rewrite is more desired than a full-featured "import"
<ddevault>
I had something working based on libvterm yesterday, but the code was a mess and it had issues
<ddevault>
I need to do some refactoring and then I'll try again, but I'm probably going to evaluate libtsm as well
<heat>
helloworld ext drivers are worlds apart from a real production fs implementation
<heat>
lwext4 is a mid point between real world and hello world
node1 has joined #osdev
Matt|home has joined #osdev
<node1>
Do you able to figure out what cause the issue?
SGautam has quit [Quit: Connection closed for inactivity]
wlemuel has quit [Ping timeout: 256 seconds]
bauen1 has joined #osdev
<zid>
There, skethcy repair affected
<zid>
it's going to survive until approximately... tomorrow?
Left_Turn has joined #osdev
gog has quit [Remote host closed the connection]
gog has joined #osdev
gog has quit [Remote host closed the connection]
gog has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
gog has quit [Client Quit]
erai has joined #osdev
xenos1984 has joined #osdev
node1 has quit [Quit: Client closed]
node1 has joined #osdev
node1 has quit [Ping timeout: 250 seconds]
MrCryo has quit [Quit: MrCryo]
MrCryo has joined #osdev
MrCryo has quit [Remote host closed the connection]
node1 has joined #osdev
MrCryo has joined #osdev
node1 has quit [Quit: Client closed]
node1 has joined #osdev
gog has joined #osdev
bliminse has quit [Quit: leaving]
bliminse has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
MrCryo has quit [Quit: MrCryo]
MrCryo has joined #osdev
MrCryo has quit [Remote host closed the connection]
node1 has quit [Quit: Client closed]
edr has quit [Quit: Leaving]
gorgonical has joined #osdev
<gorgonical>
My partner got a new m2 macbook air and for the first time in a long time I have specs envy
<nikolar>
why
<nikolar>
what do you have
<zid>
m1, but it's a garand not an apple
<nikolapdp>
i'd prefer the garand
<gorgonical>
a 10-year old tower. 16gb ddr3 and an old i5-4590 haswell
<zid>
oof year that's worse than my 2011
<gorgonical>
my laptop is irrelevant, it's just an old x230 thinkpad
<zid>
factorio would not be ideal on that
<gorgonical>
Yeah I haven't made any significant upgrades in a looong time. I upgraded my graphics card to a low-end of middle-tier recently with a rx-6600xt
<gorgonical>
games are slow not because of the graphics but just because my memory bandwidth sucks these days
<zid>
plus you know, the crappy single thread perf
<gorgonical>
yep
<zid>
so lots of latency of getting a frame prepped
<gorgonical>
nvtop shows that the gpu itself is never maxed on memory or utilization
<zid>
I ran a similar chip with quad channel and a 4.5GHz clock, so running it dual with 3.7 must be kinda pants
<gorgonical>
Oh yeah and I have this fucked up memory layout because I got a bad ram stick
<zid>
oh god is it in single channel?
<gorgonical>
so it's actually 4-4-8GB. Oh my god man this is so shit
<gorgonical>
lol
<gorgonical>
according to lshw its 0-4-8-4 GB arrangement in the banks
<zid>
You at best, have 8GB of dual and 8GB of single
<gorgonical>
jesus this situation is worse than I thought
<zid>
something tells me you won't be breaking the 60GB/s my machine did
<zid>
if you mail me a self addressed envelope I will send you my 1066MHz urdimms with thermal sensors :P
<gorgonical>
I am long overdue for a new desktop. I have been putting it off because of school but I am finishing the dissertation soon
<gorgonical>
Part of my aesthetic desire is a 90s style sleeper beige case
<nikolapdp>
good choice
<zid>
noo you need a hermetically sealed glass cube
<zid>
the internet said so
<gorgonical>
They are hard to find, but I think I could also get a sun ultra workstation
<gorgonical>
Sans doors and most of the actual bay covers
<zid>
too many fans
<gorgonical>
thanks zid. pushed me over the edge and I bought a part list I've been lazily working over
<gorgonical>
I just needed someone to point out how dire the situation really was
<zid>
7800x3d right?
<gorgonical>
I wish
<gorgonical>
It was a modest build. ryzen 5 7600x
<nikolapdp>
not half bad
<nikolapdp>
howmuch ram
<gorgonical>
32Gb of 6000mhz
<zid>
The 600x's are my favourite
<zid>
(ignoring the 3d)
<gorgonical>
I'm just gonna re-use all my current hdds and whatever. Maybe I'll install the OS to the SSD this time for speed
<zid>
shpeeed
<gorgonical>
I have a horrifying pastiche of storage, too: several HDDs, an older SSD, a newer NVMe stick
<zid>
ye I have two mechs, two ssds, one sata one nvme
<zid>
bad commas, deal with it *shades*
<nikolapdp>
heh i am on 64gb 6000mt/s
<zid>
I am on
<zid>
1800MHz?
<zid>
this ram is shit
<nikolapdp>
lol
<gorgonical>
lol
<zid>
It does mean I get 1:1 fsb though
<zid>
higher or lower incurs a penalty
<nikolapdp>
heh
SGautam has joined #osdev
xvmt has joined #osdev
<gorgonical>
nobody even reports fsb speeds anymore
<zid>
yea because it's not a real bus anymore
<zid>
the memory controller is integral
<gorgonical>
but they still have an internal clockrate at this point
<gorgonical>
shouldn't it be reported as part of the chipset specs?
<zid>
but AMD has a stupid memory architecture where the cache and memory controller and ram all need tuning
<zid>
The FSB (infinity fabric) runs at 1800MHz no matter what
<SGautam>
I've a bit of a weird question but this is probably the best place to ask
<zid>
cache and ram then run at different speeds inbetween those
<zid>
so there'sa bunch of reclocking going on inbetween to get the data through
<SGautam>
When you look at the screen of a MacBook or an HP X360, it feels way too "sharp, and crisp" for some reason. The screen is also very "glossy", and looks quite bright.
<SGautam>
I've tried to search for monitors that replicate that effect but most monitors just look dull in comparison like the screen appears more "matte" than "glossy".
<heat>
that's because retina screens are OP
<zid>
yes, those are typically just the options
<zid>
matte or reflective finish
<gorgonical>
yeah you want like a super gloss oled probably
<gorgonical>
to get that hyperreal look on the screen
<nikolapdp>
which are not cheap exactly
<gorgonical>
^ that
<zid>
I've always hated the matte laptop screens
<zid>
(and just, cheap LCDs in general)
<gorgonical>
explain why this motherboard costs $680
<zid>
especially because all the voltage regulation is now outside of the cpu
<zid>
but mostly price gouging
<gorgonical>
I guess the 3 pci16 slots is cool
<nikolapdp>
yeah they are all expensive
<zid>
my sandy had internal voltage regulation so you just fed it 1V and it did it all itself
<nikolapdp>
bloody cloudflare captcha
<nikolapdp>
won't let me open the stupid link
<nikolapdp>
finally, after like 20 tries
<heat>
lots of pcie lanes, 192GB dram support, gaming themed
<zid>
now they have external regulation and they're all set up to talk to external vrms and have tau timers for how long they take for the current to ramp up etc for OCing
<zid>
it's annoyying
<gorgonical>
we still do that SLI/crossfire thing?
<zid>
nikolapdp: serbia must be all bots, I didn't even get one
<zid>
no
<zid>
sli is long dead
<dostoyevsky2>
nikolapdp: Are you sure you are not a robot?
<gorgonical>
I remember it from like 15 years ago lol
<heat>
nope
<nikolapdp>
i am pretty sure i am made of meat, yes
<zid>
and modern cpus don't even give you that many lanes
<heat>
SLI is ded and has been for a few years
<zid>
(intel sold only 16 lane cpus between 2014 and 2022)
<gorgonical>
I did sli on dual 7600GTs back in the day and I thought I was hot shit
<nikolapdp>
gorgonical: that's basically dead for all intents and purposes
<zid>
but full sized slots are nice
<zid>
the only thing that gives pci-e lanes these days are high end amd cpus, and platinum xeons ($$$)
<gorgonical>
I do remember wondering how in the world that little bridge pcb could possibly "tie" the GPUs together
<zid>
13900k, flagship cpu, 20 lanes
<zid>
my 2011 cpu: 40
<nikolapdp>
it basically did some synchronization and some small amount of data exchange no
<zid>
THey keep doubling the speed and halving the lanes to compensate, fucking useless for anything other than running a single gpu and no storage
<Ermine>
crossfire
<zid>
The price of a pci-e lane splitter is $300
<SGautam>
Why did SLI die?
<Ermine>
I guess keeping two gpus in coherent state is way too hard
<SGautam>
I remember the GTX 690
<SGautam>
Two GTX 680s in parallel
<zid>
It's not very useful
<nikolapdp>
it just was way too unstable for the little speed up it brought
<zid>
It'snot that it's 'unstable' per se
<zid>
but it only parallelizes *some* things, so there's a lot of shortcuts you need to take and prove are viable if you actually want a decent noticeable performance boost
xenos1984 has quit [Read error: Connection reset by peer]
<Ermine>
and you don't get x2 performance
<nikolapdp>
it juts wasn't good
<zid>
Like, if all you're doing is running boring geometry with no special effects, you can get almost the full 2x, each gpu just renders every other line
<zid>
but if you need to do a full screen post processing effect, like blur? depth of field? etc
<heat>
1v1 me i have quad-SLI gtx 780s
<heat>
with the era appropriate i7-4770k
<zid>
now both gpus need both halves of the frame
<zid>
so you either get glitchy blur or you slow it down
<zid>
and various games/drivers took various approaches
gbowne1 has joined #osdev
<gorgonical>
I'm pleased to see that there isn't this enormous jump between the 7600x and the top of the am5 socket in single-threaded speed
<zid>
single thread perf is dead, everything is a webserver cpu now
<nikolapdp>
yeah, my 7700x is like 100mhz faster
<zid>
intel and amd's biggest customers by *far* are ec2 and shit, so that's where all the dev effort goes
<zid>
how many vms can it run, how many microservices can it run
<nikolapdp>
to be fair, i wouldn't expect much single core improvement if that wasn't the case
<nikolapdp>
much easier to just cram more cores and call it a day
<zid>
I'd expect a lot more than we got
<zid>
intel don't even *sell* fast skus, despite being able to make them
<zid>
because they don't even have the designs made up
<nikolapdp>
they've given up on hyperthreading :)
<nikolapdp>
so enjoy your bagillion slow cores and 2 fast ones
<zid>
wait, they got rid of HT?
<zid>
I can understand if they did, but this is the first I've heard
<nikolapdp>
yeah, next gen
<nikolar>
so i've heard at least
<zid>
makes sense I guess, they've got zillions of cores anyway, and it's insecure AF
<nikolapdp>
yeah, except that most of the skus get like 2 big cores and 10 small cores or whatever
<zid>
cool, I can disable the small cores
<zid>
and get a real cpu
<nikolapdp>
where if you had like two more fast cores, you could replace 10 small cores
<nikolapdp>
like it's silly
<zid>
the 10 small cores can be extra die area for more cooling
<zid>
honestly the main issue I'm having with modern cpus is hotspotting
<zid>
the transistors are so small that if anything at all happens, that little microscopic spec hits 100C
<zid>
it can only 'broadcast' the heat to cool it out to a 1mm^2 spot above it, in a cone shape, then the heatsink etc has to pick it up from there etc
<zid>
lapping is back boys
<nikolapdp>
lapping?
<zid>
people sell rigid billet aluminium mounting kits to keep the mounting pressure even so there isn't micron level warping on the ihs
<zid>
nikolapdp: how you polish glass
<zid>
people used to do it for shits and giggles in the 2000s, but now its actually required
<zid>
else your cpu gets to 100C and your heatsink gets to 40C