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
<zid> Merry christmas.
* merry christmas, zid.
<gog> happy new year
foudfou has joined #osdev
<mcrod> gog may I hug you
<gog> yes
* mcrod hugs gog
<FireFly> happy new year y'all folks
* gog hug mcrod
<mcrod> for me, in a few hours it'll be ((0x7E7 | (1 << 3)) & (~0 << 3))
<mcrod> yes it's UB leave me alone
<FireFly> happy undefined behaviour? :o
<mcrod> yes
* FireFly nods
* FireFly celebrates undefinedly
* Celelibi undefinety celebrates new year
<mcrod> the better expression is ((0x7E7 | (1 << 3)) ^ 0x7);
<Celelibi> It's a constant, precompute it and be done with it.
<Celelibi> You could write it 0x7E7 + 1. Or Ox7E8.
<zid> I'm not actually sure how a 'UB constant' works
<mcrod> you know
<mcrod> why in the world are people thinking i'd actually write code like that...
<mcrod> it's meant to be funny you silly gooses
heat has quit [Remote host closed the connection]
<zid> I think it might just end up as IDB instead?
<mcrod> what's idb?
<zid> implementation defined behavior
<mcrod> oh
<mcrod> yes ok
<zid> because the compiler is expressly allowed to do constant elimation, optimization, etc
<zid> and use extended integer types
heat has joined #osdev
<zid> i.e gcc produces <source>:5:21: warning: integer overflow in expression of type 'int' results in '-2147483648' [-Woverflow]
<zid> 100) Thus, in the following initialization,
<zid> the expression is a valid integer constant expression with value one.
<zid> static int i = 2 || 1 / 0;
<zid> "The semantic rules for the evaluation of a constant expression are the same as for nonconstant expressions" Whatever the fuck that means
<zid> "If an integer constant cannot be represented by any type in its list and has no extended integer type, then the integer constant has no type." not sure what this means either :p
navi has quit [Quit: WeeChat 4.0.4]
experemental has joined #osdev
<heat> happy new years friendses
<heat> new year*
epony has quit [Remote host closed the connection]
epony has joined #osdev
<zid> heat: enourmous sibling is viewing you
martine has joined #osdev
<heat> nice
xenos1984 has quit [Read error: Connection reset by peer]
xenos1984 has joined #osdev
<heat> enourmous sibling vs exhibitionism fetishists
<heat> a duel for the ages
martine has quit [Ping timeout: 252 seconds]
gog has quit [Ping timeout: 256 seconds]
rpnx has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
rpnx has quit [Quit: My laptop has gone to sleep.]
<epony> HN2020.4Y!!!!
heat has quit [Ping timeout: 260 seconds]
<bombuzal> !!
elastic_dog has quit [Ping timeout: 260 seconds]
elastic_dog has joined #osdev
kfv has joined #osdev
experemental has quit [Ping timeout: 256 seconds]
bitoff has quit [Ping timeout: 260 seconds]
gbowne1 has quit [Remote host closed the connection]
experemental has joined #osdev
experemental has quit [Ping timeout: 268 seconds]
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bnchs is now known as Cindy
elastic_dog has quit [Ping timeout: 256 seconds]
vdamewood has joined #osdev
kfv has joined #osdev
experemental has joined #osdev
elastic_dog has joined #osdev
experemental has quit [Read error: error:0A000119:SSL routines::decryption failed or bad record mac]
exit70 has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
elderK has joined #osdev
exit70 has joined #osdev
exit70 has quit [Client Quit]
gildasio has quit [Ping timeout: 240 seconds]
exit70 has joined #osdev
gildasio has joined #osdev
exit70 has quit [Remote host closed the connection]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
exit70 has joined #osdev
exit70 has quit [Client Quit]
exit70 has joined #osdev
chibill has quit [Ping timeout: 276 seconds]
chibill has joined #osdev
GeDaMo has joined #osdev
chibill has quit [Ping timeout: 260 seconds]
chibill has joined #osdev
gog has joined #osdev
<gog> hi
<sham1> hi
<sham1> A new age is upon us
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 268 seconds]
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
experemental has joined #osdev
kfv has joined #osdev
kfv has quit [Client Quit]
Left_Turn has joined #osdev
<Ermine> 024.3M
kfv has joined #osdev
lojik has quit [Quit: ZNC 1.8.2 - https://znc.in]
lojik has joined #osdev
<zid> ASL has fractions now!?
<kof123> you know chinese sign language is gonna get ya ASL!!! gonna git ya </epony>
<kof123> can we not please :D
scaleww has joined #osdev
Left_Turn has quit [Ping timeout: 256 seconds]
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
bitoff has joined #osdev
netbsduser has joined #osdev
MrBonkers has quit [Remote host closed the connection]
MrBonkers has joined #osdev
chibill has quit [Ping timeout: 268 seconds]
chibill has joined #osdev
agent314 has joined #osdev
elderK has quit [Quit: Connection closed for inactivity]
sbalmos has quit [Ping timeout: 256 seconds]
sbalmos has joined #osdev
<netbsduser> just studied that cellular irix document
<netbsduser> wonderful
<netbsduser> i love irix
<gog> hi
<gog> i like solaris
<zid> I like sir laos
<netbsduser> i also like solaris
<zid> gog did you see the xkcd yet
<netbsduser> they call it "the queen of unixen"
Left_Turn has joined #osdev
<gog> zid: what
<gog> which one
<zid> xkcd.com
netbsduser has quit [Ping timeout: 264 seconds]
netbsduser has joined #osdev
epony has quit [Quit: QUIT]
experemental has quit [Remote host closed the connection]
scaleww has quit [Ping timeout: 256 seconds]
goliath has joined #osdev
vdamewood has joined #osdev
kfv has joined #osdev
kfv has quit [Read error: Connection reset by peer]
kfv has joined #osdev
experemental has joined #osdev
experemental has quit [Ping timeout: 252 seconds]
agent314 has quit [Read error: Connection reset by peer]
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
Arthuria has joined #osdev
Arthuria has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 276 seconds]
heat has joined #osdev
netbsduser has quit [Ping timeout: 255 seconds]
xenos1984 has joined #osdev
zxrom has quit [Ping timeout: 252 seconds]
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
zxrom has joined #osdev
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
xenos1984 has quit [Ping timeout: 268 seconds]
xenos1984 has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
Left_Turn has joined #osdev
tomaw- has joined #osdev
Left_Turn has quit [Ping timeout: 260 seconds]
Left_Turn has joined #osdev
tomaw has quit [Ping timeout: 633 seconds]
tomaw- is now known as tomaw
xenos1984 has quit [Ping timeout: 260 seconds]
netbsduser has joined #osdev
<heat_> mjg, yo can you explain something?
<heat_> why can't the default perf record be used for flamegraphs?
<heat_> i think it uses cycles as the counter
<mjg> it does not collect traces
<mjg> just ips
<heat_> but you can make it collect traces
<heat_> but the end result ends up being quite a few ways out of the -F 999 or whatever
xenos1984 has joined #osdev
<heat_> and i don't get it, shouldn't cycles be somewhat correlated to time? at least if the CPU frequency is somewhat stable?
<heat_> if you try it, the output is super blocky
justIrresolute is now known as justache
epony has joined #osdev
randm has quit [Remote host closed the connection]
randm has joined #osdev
kfv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
mahk has quit [Ping timeout: 255 seconds]
zxrom has quit [Quit: Leaving]
zxrom has joined #osdev
netbsduser has quit [Remote host closed the connection]
netbsduser has joined #osdev
gabi-250 has quit [Remote host closed the connection]
gabi-250 has joined #osdev
Cindy is now known as Cindy1
Cindy1 is now known as Cindy
gabi-250 has quit [Remote host closed the connection]
gabi-250 has joined #osdev
<mjg> then it's not reporting relative counts
experemental has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 268 seconds]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 245 seconds]
experemental has quit [Remote host closed the connection]
gbowne1 has joined #osdev
[itchyjunk] has joined #osdev
[_] has quit [Ping timeout: 245 seconds]
[_] has joined #osdev
[itchyjunk] has quit [Ping timeout: 276 seconds]
alpha2023 has quit [Read error: Connection reset by peer]
alpha2023 has joined #osdev
navi has joined #osdev
vdamewood has joined #osdev
carbonfiber has joined #osdev
navi has quit [Ping timeout: 256 seconds]
Shaddox404 has joined #osdev
<Shaddox404> HI, had a few questions: 1. are there any OS used in production environments/daily driven OSes that have a microkernel?
<Shaddox404> 2. is it easy to develop a microkernel OS?
<heat_> no and no
<heat_> unless you count xnu as a microkernel
<Shaddox404> 3. Are there compatibility issues with applications that are written in languages like Java or Python?
<heat_> erm, i guess fuchsia
<heat_> but the "production environment" there is super restricted
<sham1> Would we count fuchsia as being in production?
<heat_> 3 - no
<heat_> it has been deployed
<heat_> so in a strict sense, yeah, it's in production
dude12312414 has joined #osdev
<Shaddox404> I see
<Shaddox404> Fuchsia is in production???
<heat_> yes
<sham1> If anything, due to the way microkernels work, you could even use python or java or whatnot for some of the OS services
dude12312414 has quit [Remote host closed the connection]
<heat_> the way i see it, there are two main problems with microkernels: 1) making it fast 2) making it compatible with traditional software
<heat_> neither are trivial to solve
<heat_> and 1) requires real expertise
<sham1> Of course, *puts on hazmat suit*, microkernels are like microservices and have most of the same problems of complexity. On top of which are also the OS-ey bits
<heat_> >microservices
<heat_> is fuchsia webscale
<heat_> does it support sharding
<Shaddox404> Did fuchsia OS solve 1 and 2 though? I have never seen any builds of it online, although im hesitant to get it running on my hardware (since it is my only daily driver)
rpnx_ has joined #osdev
<heat_> no
<heat_> i mean, it's probably okayishly fast, but it's not the main aim AFAIK (and i also have no benches, but it will almost assuredly suck compared to a monolithic kernel)
<heat_> as for 2, the Traditional Google Solution is to NIH
<Shaddox404> NIH?
<sham1> Then again, how much would the speed matter? Because yeah, microkernels really aren't known for that and the qualities you usually look for with them are different from raw performance. Resilience and such
gabi-250 has quit [Ping timeout: 240 seconds]
rpnx_ has quit [Client Quit]
<heat_> the speed matters as long as you can do your job effectively
<heat_> like, fuchsia's fine for the nest hubs, but in a server context? it'd get its ass handed to it by freebsd or linux or probably even windows
<sham1> Again, it's just like with microservices generally. A monolith usually can do things faster because for example communication between distinct components wouldn't require marshalling and message transmission. But on the flip side you get resilience, ability to distribute and so on
* kof123 looks up nest hub <shudders>
<sham1> At the cost of increased complexity
<Shaddox404> I mean as long as if it is a laptop/phone -> open a browser, word processor and the ability to install other apps using a store or an application package
<moon-child> minix is a ukernel running in production on your intel cpu
<kof123> qnx claims to be ...
<Shaddox404> Yea its in the Intel ME chip. runs a customized version of MINIX
alpha2023 has quit [Ping timeout: 252 seconds]
<heat_> oh shit, minix, yeah good one
<heat_> totally forgot that
<sham1> It's okay, so did probably Dr. Tannenbaum
<heat_> the real question is: do you need resilience?
<Shaddox404> And there comes the problem of SecureBoot, cant dualboot windows and MINIX/FreeBSD together, i use linux for just that reason, so that i can dual boot it with Windows
<heat_> like, how commonly does your kernel crash, that you want to move all of it to userspace?
<moon-child> lol
<moon-child> minix/freebsd???
<heat_> windows is less stable, but linux for instance has crashed... 0 times for me?
<Shaddox404> yea, i tried MINIX and FreeBSD, but since there is no SecureBoot support, i cant dualboot it with Windows
<moon-child> 'I'd like to interject for a moment. What you're calling minix is actually minix/freebsd or, as I've taken to calling it, minix plus freebsd'
<heat_> and i run the latest stable branch
<sham1> Hm, it's apparently just Tanenbaum. Weird, I've always thought that it would have a doube-N
<moon-child> i have had linux kernel panics
<heat_> really?
<Shaddox404> No i tried to install and use MINIX and FreeBSD alongside Windows i mean. My bad, i didnt mean MINIX/FreeBSD like GNU/Linux
<heat_> GNU SLASH LINUX
<moon-child> yeah
<moon-child> don't remembsd all of them but some were because of a buggy wifi dongle driver that definitely wouldn't have taken the whole system down if it had been in userspace
<netbsduser> Shaddox404: they are widespread in every niche apart from desktops, laptops, smartphones, and web servers
<heat_> >buggy wifi dongle driver
<heat_> isn't that your problem in the first place?
<Shaddox404> For me Windows is absolutely crap. I really dont like it, made the jump to OpenSUSE and am happy with it.
<heat_> like, in-tree code is usually pretty stable
<heat_> out-of-tree code? depends. nvidia for me is usually pretty stable
<netbsduser> as to minix it's really tied to netbsd, not to freebsd
<heat_> shitty wifi dongles do be shitty wifi dongles tho
Left_Turn has quit [Read error: Connection reset by peer]
<Shaddox404> Oh. I couldnt find an OS running on a Microkernel till now :\
<netbsduser> andrew tenenbom was funding his phd students to make minix something close to a drop-in substitute for the netbsd kernel until he ran out of grants
<heat_> taxpayer money going towards netbsd2 electric boogaloo microkernel version
<moon-child> it was in tree
<Shaddox404> I remember North Korea and China having their own Linux distros
<netbsduser> ridiculous on north korea's part
<Shaddox404> true. SomeOrdinaryGamers covered it once
<netbsduser> if they are so juche they should invent their own parallel-universe OS which will enchant and allure western researchers with the promise of a road not taken
<Shaddox404> HAH
<kof123> yeah but then they'd have to come west to get the path not taken and we'd just switch places :D
<kof123> it is like gog, you have to pet them both
<kof123> besides, soviets had ternary computers :D
<kof123> if we are going paths not taken...
<heat_> moon-child, qwhat if it was written in rust
<heat_> fearless concurrency
<Shaddox404> I saw someone on YT write their own OS in RUST
<Shaddox404> pretty neat
<heat_> vs C's scared shitless threading
gabi-250 has joined #osdev
<netbsduser> thank RUST for the first memory-safe kernel
<netbsduser> (it never frees its allocations)
<heat_> what kernel?
<bslsk05> ​playlist 'Rust OS' by Uncle Scientist
<netbsduser> i forgot its name
<Shaddox404> Well, i just posted the playlist xD
<heat_> redox?
<netbsduser> that's the one
alpha2023 has joined #osdev
<Shaddox404> Have been watching ReactOS, i dont think it will replace Windows anytime soon though
<netbsduser> they have been working on their ARMv3 project for over 10 years and still no release in sight
<moon-child> heat_: oh shit
<moon-child> then who was microkernel ?????????
<netbsduser> despite the name ARMv3 it has nothing to do with acorn RISC machines and everything to do with virtual memory management
<Shaddox404> That is confusing now
<netbsduser> although they wanted to hew close to windows, the reactos vm became full of innovations without precedent in windows, so the armv3 initiative is to get rid of these innovations and return to a true reimplementation of what windows did
<Shaddox404> Was Fuchsia OS created with the initial objective to "replace" android in the future?
navi has joined #osdev
<netbsduser> this is a popular suspicion, but google wouldn't let anything like that slip
<Shaddox404> I see
<netbsduser> similar announcements of replacements by firms in the past have led to what i think the mbas call "consumer resistance"
<heat_> just a friendly reminder that some people here work on it and this kind of speculation is uncomfortable to deal with
<bslsk05> ​gitlab.redox-os.org: src/lib.rs · master · redox-os / slab_allocator · GitLab
[itchyjunk] has joined #osdev
<netbsduser> oh they deallocate now
<netbsduser> that's an improvement
<Shaddox404> I mean, unless the OS can work with all the popular OS applications. Eg. Imagine a Linux distro that can run Windows apps, Linux apps seamlessly without additional configurations. I think people, especially OEMs might opt to pre-load and ship that, rather than paying a license to Microsoft
<kof123> i'm not...trying to be negative, but you realize people have been saying this since <checks clipboard> ...1995 maybe?
<netbsduser> that was called Lindows and Microsoft arranged for them to meet a gruesome end
<Shaddox404> My bad @heat_ I'll keep that in mind
<kof123> ^ java, .net, openstep, ...
<kof123> everything in the browser...
<heat_> i'm very negatively surprised by this slab allocator
<heat_> smh
<kof123> some ppl claim beos also had a settlement ;D
<netbsduser> it's not even a slab allocator
<netbsduser> no object caching
[_] has quit [Ping timeout: 245 seconds]
<heat_> that's not a requirement
<heat_> linux doesn't have object caching, neither do i
<netbsduser> if you don't have object caching it's just a zone allocator like they had 10 years earlier in mach
<heat_> no
<heat_> object caching is fucking stupid
<heat_> it fell flat on its face
<netbsduser> https://www.kernel.org/doc/html/latest/core-api/mm-api.html?highlight=kmem_cache_create it has a constructor parameter which i would be surprised to learn isn't used
<bslsk05> ​www.kernel.org: Memory Management APIs — The Linux Kernel documentation
<heat_> the ctor is used once, there's no dtor
<heat_> "The ctor is run when new pages are allocated by the cache."
<netbsduser> there is a reason why the paper that introduced the slab allocator is called "slab: an object-caching allocator" or words to that effect; the benchmarks bonwick shows in that paper are undeniable
<heat_> they are deniable 30 years later
<heat_> just as they were deniable 20 years ago when linux did away with the dtor
<netbsduser> surely you're joking
<heat_> i am not
<mjg> heat_: fearlessly scalable
<heat_> i wonder how many uses the ctor parameter has
Shaddox404 is now known as [AFK]
<moon-child> wait it gets even better
<moon-child> why does usable_size lock
<netbsduser> i see many even in recent code like exFat's driver
<netbsduser> it does look like they gimped it a bit by abolishing the destructor but it still provides a measure of caching this way
alexander has quit [Quit: ZNC 1.8.2+deb3.1 - https://znc.in]
<heat_> ok its only used in fs drivers for the inode_init_once thing
<mjg> anything fs-related is i/o bound!!
<mjg> trust me, i'm a geezer
<heat_> yeah this is a cargo culted piece of code
<heat_> literally the same function, same code, same name, used in a bunch of super.c
<heat_> lmfao
<heat_> the inode_init_once thing just zeroes a bunch of fields, it's essentially useless garbo
<bslsk05> ​grok.dragonflybsd.org: inode.c (revision 762321da) - OpenGrok cross reference for /linux/fs/inode.c
alexander has joined #osdev
<heat_> amazing crapper, next level cargo culting
[AFK] has quit [Ping timeout: 260 seconds]