klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<heat> no english = red people
<gog> chippy
<zid> LUV PLATTY JOOBS
<zid> LOV INGERLUND
<heat> wear's the footy
<gog> 'ATE THE EU NOT RACIST JUST DONT LOIK EM
<zid> answer me this then gog!?
<heat> you also forgot 'ATE THE FRENCHIES
<mjg> heat: loller
<heat> is this unix geezer
nyah has quit [Quit: leaving]
nyah has joined #osdev
<mjg> look man, the code was written so it clearly was a pragmatic thing to do at the time
<mjg> there is literally no other explanation as to what happened
<mjg> trust me
<heat> there's a solid chance this never worked
<kazinsal> it probably worked in single-processor i386 mode
<gog> objectively the best mode
<klange> An elegant weapon for a more civilized age...
<Nuclear> this must be the first time I've heard the word elegant attached to any x86 processor :)
<zid> I prefer UP because you've cranked the clockrate so high you haven't have more cores enabled, in long mode
<zid> haven't? can't.
<zid> 8.8GHz pls
XgF has quit [Remote host closed the connection]
<klange> Nuclear: I never really got the use of the word to describe a weapon designed to lop off limbs, either, so the comparison is probably apt.
<Nuclear> hehe I guess :)
<zid> whose arm are we cutting off?
<klange> If we're lucky, sith lords. If we're unlucky, our own.
<zid> no, lucky = geist, unlucky = zd
<zid> or maybe lucky = heat, unlucky = gog, idk
dude12312414 has quit [Remote host closed the connection]
<gog> why am i unlucky
<zid> well you'd be unlucky to have your arm cut off, surely?
<gog> why are you cutting off my arm
XgF has joined #osdev
<gog> if it has to be done then do it i just wanna know why
<zid> We're not sure yet, but we'll probably find out after we do it
<gog> ok
<zid> maybe you're a robot?
<gog> i wish
<zid> why are you not helping the tortoise?
<gog> no eating, no sleeping just beep boop
<zid> it's HOT gog
* gog flips tortoise
<zid> ah but I primed you do it so it doesn't count
<zid> confirmed that you're a witch
<gog> yes
<zid> man this flowchart is hard to read
<zid> okay next question, you see a leopard by the side of the road, fuck, marry, kill?
<zid> wait no need to answer, all three answers go the same way.
<zid> Next question for the pervert, stripes or spots?
<gog> what kind of witch am i
<zid> pervert
<gog> dang
<gog> makes sense
<zid> You're a roald dhal witch, I think, if we're talking sub-species
<gog> am i a good witch or a bad witch
srjek has quit [Ping timeout: 268 seconds]
<gog> wicked witch
<zid> The story is set partly in Norway and partly in England, and features the experiences of a young English boy and his Norwegian grandmother in a world where child-hating societies of witches secretly exist in every country. The witches are ruled by the vicious and powerful Grand High Witch, who arrives in England to organize her plan to turn all of the children there into mice.
<zid> It fits your character, mice are yummy right?
smach has joined #osdev
<gog> cattynip cattynip i want a mouse, catch me a mouse as fast as i meow
smach has quit [Client Quit]
* kazinsal tosses gog a fishy
<kazinsal> all I had on hand
* gog chomp fiishy
<gog> good enough friend
lanodan has quit [Ping timeout: 256 seconds]
amwps290 has quit [Quit: amwps290]
amwps290 has joined #osdev
gog has quit [Ping timeout: 268 seconds]
dude12312414 has joined #osdev
lanodan has joined #osdev
amwps290 has quit [Quit: amwps290]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
heat has quit [Ping timeout: 256 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
srjek has joined #osdev
nyah has quit [Ping timeout: 256 seconds]
gxt has quit [Ping timeout: 255 seconds]
gxt has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
srjek has quit [Ping timeout: 256 seconds]
qubasa has joined #osdev
carbonfiber has quit [Quit: Connection closed for inactivity]
troseman has joined #osdev
hmmmm has joined #osdev
bradd has joined #osdev
MiningMarsh has quit [Ping timeout: 260 seconds]
Burgundy has joined #osdev
MiningMarsh has joined #osdev
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
zaquest has quit [Remote host closed the connection]
zaquest has joined #osdev
elastic_dog has quit [Remote host closed the connection]
elastic_dog has joined #osdev
Burgundy has quit [Ping timeout: 268 seconds]
bgs has quit [Remote host closed the connection]
Vercas6 has joined #osdev
Vercas6 has quit [Ping timeout: 255 seconds]
Vercas6 has joined #osdev
Burgundy has joined #osdev
gareppa has joined #osdev
gareppa has quit [Quit: Leaving]
GeDaMo has joined #osdev
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
Vercas6 has joined #osdev
Burgundy has quit [Ping timeout: 260 seconds]
les_ has joined #osdev
les has quit [Ping timeout: 246 seconds]
genpaku has quit [Remote host closed the connection]
genpaku has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
Celelibi has quit [Read error: Connection reset by peer]
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
wootehfoot has joined #osdev
Celelibi has joined #osdev
Vercas6 has joined #osdev
bradd has quit [Ping timeout: 256 seconds]
smach has joined #osdev
bauen1 has joined #osdev
Vercas6 has quit [Quit: Ping timeout (120 seconds)]
Vercas6 has joined #osdev
nyah has joined #osdev
alpha2023 has joined #osdev
carbonfiber has joined #osdev
heat has joined #osdev
<heat> heat
<GeDaMo> heat
<mjg> goggins
<bslsk05> ​'David Goggins' Birthday Message for Joe' by PowerfulJRE (00:06:49)
<heat> who's joe
<mjg> wut
<heat> JOE MAMA
<GeDaMo> Who's Goggins?
<mjg> just watch the video motherfucker
<mjg> STAY HARD
<GeDaMo> Ain't nobody got time for that :|
<heat> yo so I've been reading the paulmck perfbook
<mjg> lol tricked
<heat> i'm on a chapter where he goes through counting things and this idea popped up for a percpu allocator like what lonix has
<heat> is it any good?
<heat> you could avoid cache line ping-ponging and allocating NR_SMP structs up front with it I think
<mjg> i don't remember the chapter. it is probably good for *some* caess
<mjg> and terrible for others
<heat> for the low low cost of a percpu mapping
<mjg> look man, the ideas concerning distributing counts just keep popping up
<mjg> if you look any particular usecase
<heat> the only way I see this percpu mapping backfire is if you're on ASIDs
<mjg> you don't need the book for that
<heat> right, but this idea isn't good just for counting
<heat> also things like slab's pcpu magazine shit
<mjg> well let me restate then
<mjg> one big bag of tricks concerning multicore performance is all about distributing the state in some manner
<mjg> and ideas how to do it present themselves immediately for any problem where they are applicable
<mjg> as long as you know the goal is to reduce communication between cpus
<heat> well yeah
<heat> obviously
<heat> one funny thing is that he measures counting "algos" and the array-based method is much faster when reading
<heat> compared to a per-thread (s/thread/cpu/g for the kernel) variable
<heat> which I can definitely see in the case of pcpu mappings, but not bare "TLS-like" shit
eroux has joined #osdev
<heat> anyway the book is a really great read
<heat> highly recommend
<bslsk05> ​en.algorithmica.org: Algorithms for Modern Hardware - Algorithmica
<mjg> heat: instead of wasting time with mckenney watch https://www.youtube.com/watch?v=Lnst72qzeI0
<heat> u wish u were mckenney
<heat> but you are matthew garrett
<mjg> no, i was i was linus
<mjg> i wish
<heat> cuz u could be a cunt all you want?
<mjg> i already can!
<heat> but you're not THE LINUS
<mjg> :(
<mjg> now you hurt my f33lz
<mjg> fortunately
<heat> i mean, this is a fact
<mjg> I STAY HARD
<heat> you are indeed not the linus
<mjg> that's also a fact
<mrvn> heat: beware of flase sharing
<mjg> so have you benched vs haiku yet?
<heat> mrvn, yeah
<mrvn> int foo[MAX_CPUS]; is just bad.
<heat> mjg, no
<mjg> y not
<mjg> looks like you are back to fiddling with perf
<mrvn> struct { int whatever_I_nee_per_cpu; .... } foo[MAX_CPUS]; much better
<heat> lazy and busy and ratioed and redpilled
<mjg> mrvn: that's also crap tho
<mrvn> the struct should be a multiple of a cache line
<heat> but now you're allocating MAX_CPUs up front
<heat> which is terrible
<mrvn> I don't, I allocate that dynamically.
<heat> which is why the percpu allocator would, in theory, get rid of all that
<mjg> this still can suck due to 1. adjacanet cache line prefetcher 2. numa
<mjg> ultimetately what you want to is to delegate pages for each cpu
<mrvn> For numa I think the only thing you can do is a vector<pre_cpu*> and allocate each cores struct in te right numa domain.
<heat> yeah exactly
<heat> but then you have extra indirection
<mrvn> mjg: big problem is when you run out of pages.
<heat> what
<mjg> for per-cpu?
<mjg> that would be some funny problem
<mrvn> heat: only for the few cases where you need to iterate over all per_cpu structs. Each core should know it's own struct.
<mrvn> mjg: no, on the core. Then you have to allocate some other cores pages.
<heat> you're missing the issue here
<heat> this stuff is for dynamically allocated data structures
<mrvn> so?
<heat> like struct slab_cache { struct slab_stats stats[NR_CPUS] __CACHE_ALIGNED; struct slab_magazine magazines[NR_CPUS] __CACHE_ALIGNED; };
<mrvn> can't do that. That's not dynamic
<heat> huh?
<mrvn> You can't resize that to the actual number of cpus you have.
<heat> exactly
<heat> but you can't have a single per_cpu struct with this
<mrvn> You have to combine the two two structs and then make a single array
<heat> because you can have N slab_caches
<heat> ...that's not the point
<mrvn> as I said above: struct { int whatever_I_nee_per_cpu; .... } foo[MAX_CPUS];
<heat> but you can't know this upfront
<mrvn> no, but you can allocate that dynamically.
<heat> can you though
<heat> stop the world, realloc, resume?
<mrvn> heat: I think when you hot-plug a CPU it's ok to stop the world.
<mjg> anyone has working cpu hotplug?
<heat> this is not for cpu hot plugging
<mjg> like *really* working
<heat> nope, never tried it
<mrvn> mjg: S390 maybe, but not. They can unlock CPUs on your board when you pay for more.
<mrvn> heat: then what do you mean by realloc? You allocate that array once at boot time and then only when you power on/off cores.
<heat> each slab_cache has percpu data. how do you allocate that dynamically?
<mrvn> heat: they have to register some callback in the cpu hotplug code so that they can resize while the world is stopped.
<heat> again, this is not a hotplugging problem
<mrvn> heat: if you aren't hotplugging then you set num_cpus once at boot.
<mrvn> then each slab_cache allocates num_cpus caches.
<heat> well, the idea is to avoid allocating NR_CPUS of a thing
<mrvn> is it? Why? You want per cpu stuff to avoid cache line ping-pong I thought.
<mrvn> My point was to avoid allocating a compiled time constant amount of per-cpu stuff.
<mrvn> You should have 2 slabs. One for when you allocate infrequent and there is no congestion between cores and one for high frequency allocations where cores would cause congestion.
<mrvn> 2 slab types
<mrvn> When you have worker threads that are pinned to cores and they need a slab then each can just have it's own basic slab without per-cpu stuff. It's already used only by one core.
<mrvn> as an example.
<heat> anyway the OG point would be to have a percpu allocator that points to percpu mappings
<heat> so you avoid having any array that could waste memory by having CONFIG_NR_CPUS elements, or possible cache line sharing
<heat> and also works well with hotplug/unplug, you can use just a single pointer, etc
<heat> i'm genuinely curious as to how pcpu mappings work with ASIDs
<mrvn> yeah, the higher you start to split into per-cpu data the better. That's why I said to have 2 slab types. You want the single core slabs so there is 0 sharing.
<heat> slabs have nothing to do with this
<mrvn> heat: what has ASID got to do with it?
<heat> i just used slab_cahce as an example
bauen1 has quit [Ping timeout: 240 seconds]
<heat> actually, good point. this is also a problem without ASIDs
<mrvn> heat: kernel data is generally GLOBAL so the ASID is ignored
<mrvn> well, or not anymore. thanks spectre and stuff
<heat> my idea is to get page X pointing to physical page Y on CPU0, physical page Z on CPU1, etc
<heat> but how do you fit this into the page tables?
<heat> there must be some way, i'm fairly sure linux does this
<mrvn> heat: That becomes ugly because you need a per core page table.
<heat> yup
wootehfoot has quit [Ping timeout: 268 seconds]
<mrvn> On ARM it's fine if you have one per process page table and then a per core kernel page table in the other register.
<heat> but for instance in linux 32-bit mm I think they have kmap_local for local CPU mappings only
<mrvn> On X86_64 I would suggest having a per core PML4 and then slot 0 points to the process page directory.
<heat> that doesn't work
<heat> mappings are spread out across the 128TiB
bauen1 has joined #osdev
<mrvn> On 32bit iirc you only have 4 slots in the root of the tree, 2 user, 2 kernel. So overwriting them on task switch is easy. On x86_64 you have up to 256 user slots you might have to overwrite on each switch. But really most processes will just have slot 0.
<mrvn> still an ugly solution.
<mrvn> There is a reason why most kernels have some pointer to the cores per-cpu struct instead of using the page tables to map each cores data on each core separately.
cyao has joined #osdev
<cyao> Hello, can anyone confirm if i'm looking up the total addressable sectors from the ATA identify right?
<cyao> printf("[ATA]: Total of %0#x addressable sectors\n", *((unsigned int *) 0x7060));
<cyao> I've stored the table to 0x7000
<cyao> But the number seems a bit off
<cyao> (0xB000001)
srjek has joined #osdev
<zid> well that means nothing unless you show the code where you read the value and stored it to your table
<zid> and that says is that the int at 7060 has b000001 in it (or that your printf is broken)
<bslsk05> ​github.com: AsmOS/fs.c at master · cheyao/AsmOS · GitHub
<cyao> Its here my adressing
<cyao> I wanted to confirm if b000001 is a normal number to get or not
<zid> reading the wiki page, that address is the data transfer reg isn't it
<zid> ah I see the part you're talking about
<zid> doing the ata identify command
<zid> where do you actually.. send the command?
<cyao> yes the wiki
<zid> To use the IDENTIFY command, select a target drive by sending 0xA0 for the master drive, or 0xB0 for the slave, to the "drive select" IO port. On the Primary bus, this would be port 0x1F6. Then set the Sectorcount, LBAlo, LBAmid, and LBAhi IO ports to 0 (port 0x1F2 to 0x1F5). Then send the IDENTIFY command (0xEC) to the Command IO port (0x1F7)
<zid> Interesting information returned by IDENTIFY: uint16_t 60 & 61 taken as a uint32_t contain the total number of 28 bit LBA addressable sectors on the drive. (If non-zero, the drive supports LBA28.)
<zid> You don't do the former, and your address calculation is wrong for the latter anyway
<cyao> Yea i did all that from row 16 to 22
<zid> wait maybe not wrong
<zid> oh wow it's totally not what I thought that part was doing, that'll teach me to skim
<zid> (it won't teach me)
<cyao> ummm wdym?
<zid> That I thought you hadn't sent the command because I was skimming
<cyao> ahh XD
<zid> how many sectors do you think the drive should have?
<zid> aka how big is it
<cyao> 461kb
<zid> oh this is under qemu or something and you're using a file?
<cyao> aka 901x 512 byte sectors sectors
<cyao> yes it's qemu
<cyao> and im using a iso file made using the dd command
<cyao> im currently only using 22 sectors from all the 901 sectors
<zid> If you swap the endian you get like.. 6912 sectors? :P
<zid> page doesn't mention endian anywhere on it so idk if that field is big or little or mixed or what
<zid> but no endian can give 901
<zid> what do the words at 100 - 103 have, out of interest
<cyao> what is endian?
<mrvn> 3421 endian to the win
<zid> which order bytes must be assembled in to produce multibyte values
<mrvn> or 01327645
<zid> aka are the bytes 12 34 56 0x123456 or 0x563412 etc
<cyao> ahh ok
<pitust> change the endiannes for every memory address
<pitust> since security through obscurity always works
<mrvn> pitust: top bit of the address gives the endianess
<pitust> thats too simple
<zid> I'm not sure he has the ability to change the ATA spec
<pitust> plus userspace doesnt have to fight it
<mrvn> On my Amiga the GFX card has it's memory repeated 4 times for different endianesses.
<zid> oh I think you need to change one or two of your outbs to outws
<zid> 1F0 is a 16bit port, you might be sending FFFE or something because of unconnected bits
<zid> FFEC*
<mrvn> on MIPS you can set the endianess of the cpu so you could have big endian for even numbered PIDs.
<cyao> ok let me try
<cyao> still b000001
<cyao> oof
<zid> oofwhat
<cyao> its still not returning what seems like a good number
<zid> line 11 is wrong also but shouldn't matter
<heat> iso files are not ATA drives
<zid> They are nto infact, ATA drives, but it seems the VM made one?
<cyao> I flipped the two bits around (i think) and now it's giving me 100
<heat> i'm relatively sure they don't support ATA commands
<zid> interesting
<heat> try ATAPI, or a real hard drive
<zid> time to actually add a device then
<cyao> line 11 is just to check the floating bus
<cyao> then how do i create a ata drive?
<zid> -device probably!
<cyao> I just want to make a file system
<cyao> device?
<zid> to qemu
<zid> -device
<cyao> umm let me look up the docs
<cyao> never heard of this flag
<cyao> or is there any simpler way to access the boot disk/floppy?
<heat> you're not accessing a cd using ATA
<heat> your .iso is a cdrom
<zid> ATAPI
<zid> yo
<heat> SCSI yo
<cyao> shouldn't cdroms and hard drives and all the stuff be the same?
<zid> only if you use bios routines
<cyao> ahh ok
<heat> cdroms use ATAPI commands
<heat> which is SCSI over the ATA bus
<zid> they sort it out and emulate the boot cd-rom as a hard disk so it's still device 0x80 and stuff
<cyao> oh okk
<heat> hard drives use ATA commands over, well, the ATA bus
<cyao> and how can i change the cdrom to a hard disk?
<heat> you can't
<heat> not for a .iso at least
<cyao> like for a .bin
<cyao> the iso is made from a few .bins
<heat> create a hard drive image and pass it to a -device incantation will ya
<cyao> okk ill look into it
<friedy> Does anyone know where I can find a free copy of the MIPI D-PHY spec?
dude12312414 has joined #osdev
cyao has quit []
nyah has quit [Quit: leaving]
bgs has joined #osdev
wootehfoot has joined #osdev
Burgundy has joined #osdev
bauen1 has quit [Ping timeout: 256 seconds]
xenos1984 has quit [Ping timeout: 260 seconds]
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
xenos1984 has joined #osdev
bauen1 has joined #osdev
seer has quit [Quit: quit]
seer has joined #osdev
zaquest has quit [Ping timeout: 256 seconds]
bauen1 has quit [Ping timeout: 268 seconds]
gog has joined #osdev
bauen1 has joined #osdev
<gog> hi
<zid> higghog
<gog> cube go spinny
heat_ has joined #osdev
heat has quit [Ping timeout: 256 seconds]
<Nuclear> nice :)
zaquest has joined #osdev
<zid> affine texture map time next I guess, but I need to reduplicate my verts first and figure out the UVs, and that sounds like work
<Nuclear> once you have vertex attribute interpolation across the polygons, you can easily add gouraud and zbuffer with pretty much the same code as affine texmap
<zid> disregard generic attribute interpolation, aquire hardcoding
<Nuclear> even so, it's mostly copy/paste :)
<Nuclear> I also usually have hardcoded interpolators for each thing, and I "generate" all the combinations of flat/gouraud/texmap/zbuffer rasterizers with macros, put them in an array of function pointers, and call the correct one based on state flags
<zid> disgusting, congratulations
<Nuclear> it's pretty elegant if I say so myself :) and fast
<zid> You say that, but I heard the word functin pointer
<Nuclear> branching in the rasterizer inner loop to select variants kills performance on low end machines (where you would use a software rasterizer anyway)
<zid> and function pointers are fast? O_o
<zid> I guess if we're talking micros
<Nuclear> yes because they are used per polygon, not per pixel
<zid> it'd be per poly anyway
<zid> why would you if() per pixel
<Nuclear> if(state & USE_ZBUFFER) { ... read zbuffer, compare, write-or-break ... }
<Nuclear> if(state & USE_TEXTURE) { ... read texture, use color, write ... } ...
<Nuclear> and so on
<zid> just do what you're doing, but with ifs not pointers
xenos1984 has quit [Ping timeout: 260 seconds]
<Nuclear> yeah, but again, at the polygon level
<zid> yes
<zid> idk why you'd even attempt to do it at the pixel level, and blame it on not having function pointers
<Nuclear> well, that's what I'm saying, this is a nice way to not have to do it per pixel... have all the variants generated and call the correct polygon_fill_whatever() function
<zid> clearly what you should do
<zid> is create some kind of macro language to generate the right interpolations
<zid> with some tags like flat and stuff
<zid> and maybe native support for vec3 vec4 types etc
<zid> we could call it like.. good language supplies lerps
<Nuclear> here's a concrete example from a recent-ish project: https://github.com/MutantStargoat/eradicate/blob/master/src/3dgfx/polyfill.c (lines 15 and 168)
<bslsk05> ​github.com: eradicate/polyfill.c at master · MutantStargoat/eradicate · GitHub
heat_ has quit [Ping timeout: 256 seconds]
<Nuclear> and polytmpl.h has a bunch of ifdefs in it
Ellenor has quit [Read error: Connection reset by peer]
Ellenor has joined #osdev
xenos1984 has joined #osdev
bauen1 has quit [Ping timeout: 260 seconds]
bauen1 has joined #osdev
smach has quit [Read error: Connection reset by peer]
Ermine has quit [Quit: Cya!]
Ermine has joined #osdev
srjek has quit [Ping timeout: 268 seconds]
bradd has joined #osdev
<wootehfoot> should shorten the variables more, that'll make the code faster
<zid> ooh good idea
<mjg> :))
<gog> one-letter variable gang
<zid> Can I have two
<zid> sometimes I need a subproperty
<gog> you can have second a letter as a treat
<zid> px, xs, cx, cy etc
<mjg> get a lang which accepts utf8
bauen1 has quit [Ping timeout: 256 seconds]
<Nuclear> I'm on the Kernighan camp on this. Local variables should be short, because context is all around them, global variables should be descriptive, because context is nowhere near their use
<gog> imagine thinking that the program is a sphere smh
<gog> globalheads
<FireFly> everyone knows source code is flat
<zid> every time you want to use a global
<zid> you have to cut a hole in the piece of paper you're writing your code onto
<zid> and fold it o the window you made shows the original global var definition
<mrvn> mjg: get a lang that accepts emojies
<sbalmos> that's not very tree-friendly
<mrvn> struct <rocketship> { ... };
<sbalmos> mrvn: nuAPL?
<mrvn> gog: allow nested functions (or lambdas in C++) and code is an onion.
<gog> "programs are like onions" "they stink?"
<mrvn> that too
<gog> programs often make me cry
<mrvn> see, perfect analogy
<zid> When you cut them up into pieces while crying, it makes you feel better
<geist> huh reading a program written in ada. never looked too closely at the language
<gog> i am not a programming language
<gog> ... or am i
<sbalmos> if you were, would you know it?
<sbalmos> the next level of being Turing-complete?
GeDaMo has quit [Quit: I'm going to show these people something you don't want them to see. I'm going to show them a world without you.]
<gog> i'm a brain in a vat
<gog> i am solipsism personified
<sakasama> The city of lost children embraces the teachings of Godel?
<mats1> all that embrace godel are children
<mats1> like a doctor that cites the holy trinity and admits a hypothesis of immaculate insemination
dequbed has quit [Quit: bye!]
jjuran has quit [Read error: Connection reset by peer]
jjuran has joined #osdev
<mrvn> I should run: sed s/init/maria/g
<mrvn> or are the idle threads the only immaculate ones?
wootehfoot has quit [Read error: Connection reset by peer]
* vdamewood gives gog a fish in a bucket
heat_ has joined #osdev
bradd has quit [Ping timeout: 260 seconds]
* gog brainsorb fishy
<mrvn> The best about a bucket filled with tropical fish is the iron bucket (in Skyblock)
<gog> .oO(meow)
<mrvn> and the water when playing hardcore
<heat_> helo i am linux torvald
<mjg> hi linu my ubuntu no suspend
<mrvn> heat_: why you do LUA in kernel?
<heat_> mjg, have u try window
<heat_> mrvn, i dont, i just do eBPF over XDP over io_uring over aio over blockchain
<mjg> heat_: window xp no boot
<heat_> window 8 good
<heat_> app uwp very nice
<mjg> anlaky number
<heat_> material design
<heat_> sorry, window ate
<heat_> mb
<heat_> no anlaky now
<mjg> no torrent for windows ate
<heat_> hacker
<Ermine> NT4 good
<Ermine> 32Mb enough
<mrvn> with a microkernel with a non-swappable core larger than all of linux.
<heat_> 4.2BSD ideal operating system
<mrvn> heat_: NIH
bgs has quit [Remote host closed the connection]
<heat_> network, fork, single thread cpu go fast, lsd
<heat_> simple as
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
srjek has joined #osdev
epony has joined #osdev
<\Test_User> just write bootable programs, they'll run much faster :P
<gog> bare metal bare metal
<gog> operating systems were a mistake
<zid> mare bettle
<zid> flash your code to the bios chip
<gog> yes
<heat_> noooooooo
<heat_> dont write bios code
<heat_> bad idea
<zid> YES DO IT
<gog> i will write a bios code
<zid> if you're on amd you don't even need to train the dram right?
<heat_> you'll end up writing stupidly complex code full of GUIDs
<heat_> it's a trap
<heat_> zid, correct
<heat_> you need to train the rest though
<zid> fuck it, buy a 1590x or whatever that chip is, and play 'flash the bios'
<zid> also my monitor is turning black atm pls stop, that's annoying
<heat_> racist
<heat_> i support monitors of all colours
smach has joined #osdev
<epony> the 8bit 6502 monitor program ran mostly on monochrome monitors (green or white phosphorus if you were using a TV set)
<epony> it was found on the ROM of many of those
smach has quit [Quit: No Ping reply in 180 seconds.]
<epony> https://en.wikipedia.org/wiki/Machine_code_monitor (the first picture has some deflection defect or magnetic / coil rotation, that was a not that uncommon defect on some legacy monitors
<bslsk05> ​en.wikipedia.org: Machine code monitor - Wikipedia
smach has joined #osdev
<epony> I had some with a pale blue phosphorus on the vt50/100 series in the lab back in the 80ies
<epony> and my luggable 286 has an amber organge phosporus embedded CRT monitor in the case (with a keyboard and inernal fast HDD)
<epony> some of the larger DEC machines had a red phosphorus embedded CRTs in the racks for the disk controllers we were using back then
<epony> but I mostly liked the fine dot of BW television sets used instead of monitors, that was almost as nice as Hercules graphics.. about 5-10 years earlier
<epony> in the mid-90ies that preference was for the better resolution of the monitors, and the TVs are out since then ;-)
<epony> you have to see CGA palettes on those monitors back in the late 80ies.. it was nice
smach has quit []
heat_ is now known as heat
Burgundy has quit [Ping timeout: 240 seconds]
wereii_ has quit [Quit: ZNC - https://znc.in]