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 has quit [Remote host closed the connection]
heat has joined #osdev
<vdamewood> epony: Not true. I went to a four-year college.
<vdamewood> And my college did offer a post-graduate program.
immibis_ has quit [Remote host closed the connection]
immibis_ has joined #osdev
<kaichiuchi> something I do want to stress
<kaichiuchi> i am not at all saying that all college people are morons, because if I don't say that it gets me into trouble
<kaichiuchi> my point is the degree doesn't prove much of anything to me
<kof123> unity of opposites, moron-ness is possible everywhere, the possibilities are infinite .
* kof123 nite all zzzzzzzzzzzzzzzz
* kof123 points to pinky and brain as evidence, or mice and men, or ...
[itchyjunk] has joined #osdev
<heat> riscv64 build running third party packages
<heat> plus G N U n a n o
<jimbzy> I read that as G U A no. XD
<zid> everything is running on a temporary filesystem and YOU
nyah has quit [Quit: leaving]
<epony> vdamewood, in some parts of the world, college is a secondary education form (pun intended too)
epony has quit [Quit: QUIT]
<klange> heat: oh nice
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<kaichiuchi> heat: hexchat >:(
Burgundy has quit [Ping timeout: 260 seconds]
gog has quit [Ping timeout: 248 seconds]
dude12312414 has joined #osdev
Gooberpatrol66 has joined #osdev
[itchyjunk] has quit [Read error: Connection reset by peer]
epony has joined #osdev
smach has joined #osdev
dutch has quit [Quit: WeeChat 3.7]
<heat> klange, thanks :) yeah it's pretty neat, even though its just TCG
<heat> i've been seriously thinking in getting an rpi400 and starting work on that
smach has quit []
heat has quit [Ping timeout: 246 seconds]
epony has quit [Ping timeout: 268 seconds]
spikeheron has joined #osdev
epony has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
bradd has quit [Ping timeout: 272 seconds]
bradd has joined #osdev
eroux has joined #osdev
bradd has quit [Ping timeout: 260 seconds]
bradd has joined #osdev
<klange> Hm, my baked Deja Vu Sans Mono is a perfectly suitable VGA text mode font... https://klange.dev/s/Screenshot%20from%202023-01-04%2014-33-02.png
<zid> looks a bit wimpy
<zid> needs a bit more heft for my liking
<moon-child> is that not antialiased?
<moon-child> hard to tell because of my browser's rendering but it appears not to be antialiased :\
<kazinsal> considering it's being rendered by the VGA character generator, it would not be anti-aliased
<klange> Well it's a baked bitmap of Deja Vu, so yes, it's not anti-aliased.
<klange> I use it for kernel debug output, it's an option in the terminal (though with caching, the truetype rasterizer is just as fast now), and it was in a suitable format to throw at VGA so I did that just to see how it looks, and it looks fine!
<klange> With the graphical version using the same font but a smaller width: https://klange.dev/s/Screenshot%20from%202023-01-04%2015-03-33.png
* moon-child dunno vga
<moon-child> for bitmap fonts, I like proggy
<zid> fixedsys is life
<moon-child> wer computer modern typewriter
<klange> I baked deja vu for consistency with my GUI that uses the normal truetype (and formerly SDF, and formerly truetype again) version everywhere.
<klange> I was previously using a larger font for a while (visible here: https://user-images.githubusercontent.com/223546/149872643-ec097266-600a-43b4-a4c8-2976354dd80e.png)
<moon-child> make an efi bootloader, and render the aa version with gop :)
<klange> I could port my truetype rasterizer to the bootloader and use it in the video modes (the BIOS loader also supports video mode and defaults to it, but can be toggled to text mode if the video isn't working right)
<moon-child> I mean, don't have to rasterise at boot--lots to go wrong there--just bake an aa version
<klange> but that's so boring (and I'm not going to do it because here I'm using the same representation for both the graphical text rendering and what I throw at VGA text mode, which is neat)
<zid> I use a pirated copy of that gnu font in reality, not fixedsys
<klange> unifont?
<zid> that's the one
<kazinsal> pirated?! rms is having a sad : (
bgs has joined #osdev
captnemo has quit [Quit: WeeChat 3.7.1]
bgs has quit [Remote host closed the connection]
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
hextuff has joined #osdev
<epony> when people type truetype and typewriter, I always read teletype
<klange> a modern terminal emulator is just a truetype teletypewriter
<kazinsal> teletruetypewriter
<kazinsal> ttty(4)
<epony> don't know what you're doing to your fonts, but.. it's pretty easy to get crisp and readable fonts in X ;-) it was working on 8bit and 16bit computers pre-hires graphics too
<epony> things seem to go wrong when people get "moved" to higher resolutions and implementations get mixed up with that "handling"
<klange> truetype was originally designed purely for aliased monochrome rendering!
danilogondolfo has joined #osdev
<epony> it's a pretty dramatic to get the overhead of vector fonts and get these wrong with anti-aliasing at the same resulting in worse performance and visuals than bitmap / raster fonts ;-)
<epony> text that moves when you scroll and redraws pixels with artefacts and changes the shape of symbols and characters on movement and selection → classic misery of overdesigns gone awful (gnome's rendering libs are horrible)
<epony> dejavu seems a nice font family indeed, I'm using these too
<klange> TrueType and other vector font formats were designed for scaling, because having a two dozen versions of every bitmap font you want to display is infeasible
<epony> but redrawing in terminals like XTerm is faster with raster fonts (the defaults in X are pretty decent)
<epony> and rasterisation of vector fonts is not that bad overal, can result in significant improvements in performance and consistent layout / correct rendering
<epony> what's bad is smudging and smearing of contours and moving shapes that leave artefacts and bad visuals in general from redrawing failures
<moon-child> hmmm. It all originates in postscript, right? I guess printers have variable resolution too, heh
<epony> postscript is a language
<kazinsal> it was apple's competitor to postscript's Type 1 system
<kazinsal> they originally were using it as a way to negotiate a slick deal on postscript in their printers and ended up accidentally just inventing a better vector font format
<bslsk05> ​en.wikipedia.org: Printer Command Language - Wikipedia
<klange> all the bonkers hinting stuff in truetype was purely to get downscaled glyphs to still spit out pixels, and a lot of modern text rendering "improvement" is "just stop doing the hinting
<kazinsal> tl;dr Microsoft had a postscript-compatible PDL that they licensed to Apple in exchange for a TrueType license, and then Adobe went "oh no" and renegotiated its PostScript license with Apple as well as licensing TrueType for all their printer boards
<epony> hinting was in the starting years of the LCD epoch ;-)
<epony> such fun
<CosmicBitch> what is this "hinting"
<kazinsal> OpenType came from Apple coming up with an enhanced version of TrueType that only worked with QuickDraw GX and Microsoft going "well, I guess we'll come up with our own variant" and it being good enough for both Apple and Adobe to go "might as well join 'em" and leaving both TTGX and Type 1 to rot
<klange> Hinting is aligning vertices in glyphs to grid coordinates, so that they produce full pixels.
<bslsk05> ​en.wikipedia.org: Subpixel rendering - Wikipedia
<klange> It has nothing to do with subpixel rendering.
<epony> it has
<klange> It does not.
<epony> since hinting is used to improve legibility
<klange> That's a side effect.
<epony> on fonts that don't align to the pixels it improves the alignment to pixels
<klange> That is true, but it has nothing to do with why hinting was developed.
<epony> https://en.wikipedia.org/wiki/Font_hinting "At low screen resolutions, hinting is critical for producing clear, legible text. It can be accompanied by antialiasing and (on liquid crystal displays) subpixel rendering for further clarity."
<bslsk05> ​en.wikipedia.org: Font hinting - Wikipedia
<klange> Yes, but hinting was developed before any sort of antialiasing was happening with text.
<epony> when using vector fonts at 90-120 ppi, that's low resolution for smaller font sizes
<epony> maybe the Apple side of these technical details always had a different view on the implementation and terminology for aesthetics and rendering detail
<klange> TrueType makes no specifications about antialiasing, it was all designed around monochromatic aliased rasterization, and the spec says that if the middle point of a pixel isn't within a glyph the pixel isn't drawn, which means without hinting you can easily lose entire lines because they were just a bit off at a smaller size.
LostFrog has joined #osdev
<klange> Hinting pushes things around specifically to avoid that problem - and is a complicated mess of a bytecode format to allow very detailed control over the process.
<klange> It's an added bonus that this process also produces more legible rendering with antialiasing and avoids fuzz, but it wasn't designed for it.
PapaFrog has quit [Ping timeout: 272 seconds]
<klange> It also helps with non-subpixel antialiasing just as much - fuzz is a bit less noticable without the colorfringing of subpixel rendering, but still there especially when you start getting differeing misalignments between different glyphs.
hextuff has quit [Quit: hextuff]
<epony> so, in graphical applications with vector fonts you benefit from antialiasing and hinting added on top of subpixel rendering on smaller resolutions, in textual applications raster fonts make much more sense and produce fast and legible results but less granular font scaling
<klange> I dislike subpixel antialiasing, it's too prone to problems - and for a long time it was icky with patents! One of the last things my team at Apple did before I departed a decade ago was get rid of it - grayscale antialiasing only!
<epony> and in some legibility cases people prefer to turn off anti-aliasing and subpixled rendering so hinting is not needed then either
<klange> (of course, Apple could pretty handily rely on the one thing that makes subpixel antialiasing superfluous: higher DPI displays!)
<klange> No, hinting is absolutely needed for non-antialiased text.
GeDaMo has joined #osdev
<klange> (at small sizes)
<epony> since 200 ppi monitors in desktop sizes are not yet the massively popular models, it's all 100 ppi land and the artefacts of vector fonts are pretty pronounced on smaller font sizes.. which requires the smootihing techniques and it's less legible, so raster fonts are still a way to "solid" text
<klange> This is what hinting exists for.
<epony> it's a bit premature for gnome to drop raster fonts and they did that a couple of years ago, and turned on by default ligatures and what not (kerning like)
<klange> Without hinting, the downscaled glyph has significant dropout - entire parts of the glyph do not fall in the middle of pixels that TrueType specifies as the sample point for non-anti-aliased rendering. Hinting widens the glyph to account for this. Egregious examples can be entire vertical strokes from letters like I or L going missing.
<klange> https://learn.microsoft.com/en-us/typography/opentype/spec/images/img00306.gif (why is this one separated from its hinted counterpart, damn you Microsoft OpenType specification document!)
<FireFly> somewhat higher ppi seems to be fairly popular nowadays, no?
<FireFly> like, more than the ~90-100 from like 12 years ago at least
<epony> no, it's 100-120 ppi on desktops still
<klange> Actual PPI of displays has increased greatly, but we still pretend they are 90.
<epony> only on small size panels
invalidopcode has quit [Read error: Connection reset by peer]
<FireFly> I thought at least 2560x1600 is pretty much the norm for like, 24", compared to 1920x1200 being the high end a decade ago
<epony> in the 20"-30" it's around 100 ppi, not around 200 ppi
invalidopcode has joined #osdev
<Mutabah> 1080p is still VERY common
<FireFly> fair
<epony> QHD in 27" is typically about 100-110 ppi
<klange> My 2560×1440 displays are ~125ppi
<epony> that's 24"
<klange> My Cintiq is a dense boi at 170 - 1920x1080 at 13"!
<FireFly> my lappy's 13" is 3456x2160 but I kinda wish it was a bit lower :p
<epony> so is similar to the 17" on 1280x1024 or 10" on 1024x600 ;-)
<epony> yes, laptops and small devices like tablets and phones now have higher resolution (density) at smaller screens but mainstream laptops are not even QHD yet
<FireFly> what's QHD again? i keep forgetting the name->resolution mappings, they get so arbitrary after a point
<epony> 2560x1440
<FireFly> ah
<epony> it's WQHD technically but, is easier to type liks SD, HD, FHD, QHD..
<FireFly> sure, but still 1080p or 1200p or a 13" lappy is very different pixel pitch to a 24" monitor of 10 years ago :p
<klange> One of the first commonly available LCD displays was the ViewSonic VP140 - 1024×768 at 14.1" for around 91ppi.
<epony> it's just now that 24" monitors are getting the QHD res as a standard (mainstream) it piloted on 27" in 2010
<epony> viewsonic were never a popular brand here, it was all LG and Samsung flatrons after the Sony CPD series
<epony> kind of does not exist in the low end mass market in the CRT epoch
<epony> and some people were getting insanely absurd monitors like AOC ;-)
<epony> CPD 100/200 series from Sony were 14" and 15" at 1024 and 1280 respectively
<klange> For something a bit more high-end, SGI's 1600SW did 1600×1024 @ 17.3" for a ppi of 110.
<klange> But it also cost $2500 in 1998 - that's north of $4k inflation adjusted, and it was not at all a common consumer item.
<epony> at the peak of the CRT technology the VGA resolutions of 2048 x 1560 were achievable (maxed) in 21" and larger for previous models
<epony> yep
<FireFly> no way 2048x1560 was common for household CRTs though :p
* FireFly remembers 1280x1024 CRTs (and 1600x1200 I guess on the higher end)
<klange> It was much more common to see people running 1280×1024 on a 19" CRT.
<epony> it was common for second hand monitors after some years
<FireFly> really? o.o
<klange> You'd try it at 1600×1200 and be amazed that it worked but it would be a bit fuzzy and Windows 98 would slow to a crawl :)
<FireFly> I def remember only heraing about up to 1600x1200 in forums at the time around the turn of the millennium
<epony> as soon as the LCD monitors were 1280x1024.. things swung rapidly towards LCDs
<epony> the first generations of TFT were not very popular, but the TN panels made them really accessible
<epony> and about 2005 it was game over for the CRTs
<klange> very late model CRTs, like in the 2000s when LCDs were available on the consumer market, things got a lot higher-res, but the form factor of LCDs won out even with lower resolutions.
<FireFly> makes sense
<FireFly> consumers probably value the smaller size and lighter weight and other things
<epony> it's better geometry and cheaper to produce
<klange> A lot of it was also just that while those CRTs existed and supported those resolutions, your video card probably shat itself trying to produce them.
<FireFly> oh point
<epony> the next generations were IPS panels which improved colours and it's just NOW entering the mainstream laptops (second hands don't yet have QHD or IPS)
<epony> well graphics cards rapidly improved in the 1998-2002 period
<epony> so went from VGA to DVI
<epony> and that peaked with maxing the DVI with dual link at 2010 for about 300 MHz bandwidth (maxed) WQHD
<klange> I don't think I've ever owned a CRT with DVI - since VGA was carrying the analog signals to drive the tube anyway it was still common, and that was a limiting factor as well (and why your 1600×1200 was going to be blurry even if the shadow mask had the dots for it)
<klange> (And I think CRTs that _did_ do DVI just used the analog pins anyway?)
<epony> so VGA peaked in 2000-2002, DVI 10 years later, yet to see the DP peak (maxed at about 8K)
* moon-child awaits eagerly the day when resolutions are high enough that we can just skip aa
<epony> yes
<epony> that's about the 200 ppi density
<\Test_User> take a bunch of phone screens and line them up
<epony> if you use a lense for your small screen device, you will be seing the artefacts :-)
<klange> 200 isn't enough, 300 probably is but you'll not see anyone do it in a phone even when those are already exceeding 300ppi
<FireFly> not even apple?
<epony> desktop need to jump from 100-120 to 200-240 first
<klange> Apple just abandoned subpixel and only does grayscale.
<FireFly> ah fair
<kazinsal> I'm a terrible person who bought a 32" 1440p display so I could have BIG SCREEN and still be at the same PPI as my 1080p monitors
<FireFly> I mean I guess it isn't really so expensive to do greyscale AA
<epony> we're still in the 100 ppi epoch on mainstream desktop monitors
<FireFly> so kinda makes sense to just keep it around?
<moon-child> you kidding?
<FireFly> or maybe it is, hm
<moon-child> really good greyscale aa is super expensive
<FireFly> ok fair
<kazinsal> mind you I also bought it for 144 Hz gaming but the fact that it gives me a metric buttload of monitor real estate was a major factor
<klange> It's also super useful if you ever want to cheat and do raster effects with your rendered text.
<FireFly> but like, cheap AA based on just looking at one location within the pixel or so
<FireFly> I figure it makes sense to keep cheap greyscale AA around even post-hidpi, but I guess it makes sense to not do costly polishing
<moon-child> sort of
<epony> cheating is how it always happens ;-) until the pixels are there, they are shared responsibility between adjacent pixel-buddies
<moon-child> there is somewhat serious complexity to dealing with overlapping shapes
<klange> (It's the only thing that will look good - non-aa text will look blocky no matter what scaling technique you use, and subpixel will have massive color smearing, but grayscale AA raster scales acceptably! - that's the real reason Apple did it, those compositing effects when you close an app or whatever need it)
<moon-child> because eg you don't want to double-count the overlapping bits
<FireFly> klange: makes sense
<moon-child> klange: the proper solution is to let the app render itself under whatever weird transform
<moon-child> have a protocol where the wm can tell the app how it's being transformed
<klange> moon-child: that's more expensive than having a GPU scale a texture!
<FireFly> also a lot more burden on the app developer that they probably don't want or care enough about (when the one who really cares about nice looks is the platform, kinda)
<moon-child> only because software patents
<bslsk05> ​lobste.rs: How I still use Flash in 2022 | Lobsters
<klange> Also if you want to have difficulty with overlapping bits, ooh boy... try rendering a semi-transparent window with a command list without rasterizing it first!
<epony> and now for the maniacs, you can NEVER have fine colour representation in this generation of technology for text, because the adjacent pixels get side effects, and the colours look different when it's just 1 pixel next to another colour area
<moon-child> FireFly: app developer is gonna use whatever ui toolkit, and the ui toolkit will deal with it
<FireFly> mmm mabye
<moon-child> and in the case of apple/ms/redhat ... the developer of the ui toolkit is also the developer of the wm
<FireFly> people don't use those though :v (well, generalising, but having worked at a webdev place that did a lot of react native apps too)
<klange> Anyway, I had a lot of fun with my truetype rasterizer, and I think my text looks quite acceptable.
<moon-child> klange: that is hard, I will grant you :P
<epony> so you get to pick lower contrast background at equal distance to your colours first, and then deal with your display inability to render accurate colours in adjacent pixels with "corrections" in the same way (but different algorithm) that are needed for subpixel rendering
<moon-child> (and I will note: whereas compiz is out of style, and apple kind of stands alone w/its 'genie animation', rendering under transform is more important than ever now, given vr)
<epony> so it still has a distance to go, after getting the high-pixel density next-generation resolutions on the desktop
<epony> compositing effects are kind of cool
<epony> and given the fact that modern graphics cards do 2D in their 3D shaders and rendering directly in hardware primitives, for about 20+ years already
<epony> it's kind of stupid to not use the 3D for rendering and compositing in the software
<klange> I do scaling effects on window open/close, I support rotation, transparency... all in software, because I don't have drivers.
<klange> I also support blur-behind but that's a really expensive one I reserve for special cases.
<epony> there are no unaccelerated graphics any more except on specialised 2D rasterisation hardware and video processing graphics like the Matrox series that have standalone high-performance 2D and video layering
<moon-child> scaling is somewhat easier because, per https://outerproduct.net/trivial/2022-12-26_curve-space.html, a screenspace square is also a curve-space square
<bslsk05> ​outerproduct.net: Curves should be rendered in curve space
<moon-child> (rotation, ok, you're probably not axis-aligned anymore, but who cares~)
<klange> https://klange.dev/s/Screenshot_2023-01-04_18-46-04.png rotation, bad downscaling, and some blur-behind
<moon-child> what kinda sampling do you use for the rotation/scale? Bilinear
<moon-child> ?
<klange> yeah, it's all bilinear
<moon-child> simd? Seems like it should be parallelisable, but also kinda pita
<klange> I don't use any SIMD directly for the sampling, but I do have some SIMD stuff for blitting.
<moon-child> (vs gpu where you get hardware sampling and fast gather)
<klange> I can build with nearest-neighbor for demo purposes: https://klange.dev/s/Screenshot%20from%202023-01-04%2018-49-32.png
<moon-child> might be able to do a higher-quality sample if you simd
<klange> (it looks even worse with the bitmap font!)
<moon-child> omg that's bad
<klange> (I'll note in the other screenshot the left terminal is TrueType with grayscale AA, and the right terminal is the bitmap font; I don't support non-AA truetype rasterizing due to the aforementioned requirement for hinting to not get dropouts - the bitmap font wasn't even baked with my rasterizer, I used FreeType to do it before I even started working on mine.)
<ddevault> ayy firefox opens ARMARM today
* Ermine waves his ARMs
<FireFly> (ARM)²
<FireFly> I do appreciate ARMs punnery
<FireFly> or Arm now ig
<Ermine> It was advanced risc machine
<Ermine> or acorn risc machine
<Ermine> ddevault: did you try running Helios on your Pinebook?
<ddevault> not yet, someday
<ddevault> current target is rpi4
<ddevault> will attempt pinephone at some point
<ddevault> I bet I can make it send/receive SMS pretty easily
<ddevault> does anyone have a readily copy/pastable example of using tlbi on aarch64 to invalidate a specific page in a specific ASID
<klange> The web version of the ARMARM is one of the worst-designed websites it has ever been my displeasure to use, and I live in Japan where the local web design is infamously horrible.
<ddevault> reading the ARM manual and it has too many words
<epony> you mean firefox will now target UNIX instead of WIN/DOS ?
<Ermine> and too many letters
<epony> when FF gets to run well on LIN/DOS, then it would be targeting UNIX
<epony> for now it runs well on JVM and on WIN/DOS
<ddevault> >Register bits[45:44] are the SCALE field that is the exponent element of the calculation that produces the upper range
<ddevault> kill me
<klange> Don't worry, your upcoming seizure as you continue to read the ARMARM will take care of that.
<ddevault> tempted to just invalidate the whole TLB and move on with my life
<Ermine> out of context it is even more obscure
<klange> Looking at all my tlbis... they're all vmalle1is :D
<klange> which I think is cargoculted from something in m1n1
<Ermine> okular hits 100% of CPU consumption while looking for this phrase, but Linux moves to different kernels somewhy
<bslsk05> ​paste.sr.ht: paste.txt — paste.sr.ht
<ddevault> latter is a bonus but it was easy enough to understand and easy enough to implement so I might as well go for it
<epony> the goal to have a fat application like that run on your newfang kernel.. is a long process
<FireFly> Ermine: yeah, but also ARM Thumb, and IIRC "LEG" was a thing too
<FireFly> they like their puns on limbs :p
<epony> body parts for robots
<klange> good luck googling that
<FireFly> (and the ARM ARM of course)
<Ermine> FireFly: my favourite puns in this channel involve warmth.
<klange> Do you like it when we... turn up the heat?
<klange> (heat is currently offline, so no ping)
<Ermine> yeaaah
<bslsk05> ​git.sr.ht: ~sircmpwn/helios: +aarch64: implement arch_page, TLB invalidation - sourcehut git
<ddevault> ¯\_(ツ)_/¯
<ddevault> good enough
<ddevault> assuming it works, who knows
<epony> in general, these are microcontroller designs which have been outgrown to be microprocessors and systems-on-chip
<epony> the complexity is serious, comparable to the entire x86 machine standards in one hubrid ASIC+
<Ermine> ddevault: I guess hare translates "tlbi_vae1" function names to "arch.tlbi_vae1" ?
<epony> hybridisation is happening on chipsets on generic PCs for a long time too
<ddevault> yeah
<ddevault> adds namespace
<klange> aarch64 is pretty clean-slate
<epony> the northern and southern bridges and their fused chipset are moving towards the CPU, it's only high performance and waste heat limit than integration
<epony> but the central processor has now a memory controller and an input-output controller and multiple cores and separate dies (semiconductor cross connects)
<epony> waste heat is a serious problem for SoCs
<epony> so much as to mandate the separation in remote areas of blocks that share functionality and complex power management on each functional block with dynamic scaling (rapid)
<epony> the drawings that are shown on "product presentations" are very simplified and non-technically accurate
<Ermine> ARMARM TLDR version when
<ddevault> ARMARM split into volumes when
<Ermine> good question actually
<bslsk05> ​en.wikipedia.org: System on a chip - Wikipedia
<ddevault> at the very least split up the aarch64 and aarch32 parts
<ddevault> maybe another one for extensions
<epony> models are released yearly
<epony> expect changes all the time
<ddevault> and instruction encoding
<Ermine> intel technicians managed to cut pdf in 4 parts
<epony> the books for an architercture are split in print too
<klange> Intel used to sell physical books.
<epony> yep
<ddevault> I should probably improve my memory map at some point
<GeDaMo> Intel used to send you physical copies of their manual for free
<ddevault> ¯\_(ツ)_/¯
<klange> Not anymore, sadly.
<Ermine> physical ARMARM book in its current form will be dangerous mechanically
<ddevault> I want to be able to keep EFI runtime services around someday
<klange> They'll offer to send you a print-on-demand copy through Lulu now...
<klange> For a fee.
<Ermine> ddevault: what these runtime services are good for?
<ddevault> basically only useful if you want to implement efibootmgr(1) equivalent for your system
<ddevault> i.e. configure boot entries or set up the bootloader during an installer
<Ermine> ddevault: ah, thank you.
<klange> There's some timer stuff in there that's kinda useless, there's a reset vector, but the bulk of it is the efivars.
<ddevault> bad look if your install process involves "after install, boot linux and run this efibootmgr command to configure the bootloader"
<klange> just install your bootloader to boot${arch}.efi and be the only one :D
<Ermine> There might be other entries still
<klange> just nuke everything else and the fallback behavior will take care of it :)
<Ermine> take care to not nuke nvram so your device doesn't brick accidentally
<ddevault> well, you need to edit variables if you want to set a kernel command line
<klange> that's why I have an efi loader that has a little text editor in it
<ddevault> hard pass
<ddevault> thanks
<klange> You could also do something like read them from a file in your EFI stub.
<Ermine> I mean, there was a story, where guy rm -rf'ed their linux and that wiped nvram, because efivarfs was mounted rw, and that laptop died because of broken firmware that couldn't reinitialise nvram
<epony> don't forget, you're treating ARM like a 16bit epoch CPU in its capabiltiies, these now support virtualisation and extensions for data processing and cryptography too, and have integrated graphics, low precision and high precision maths, and periphery
<epony> and the memory is in there too
bxh7 has joined #osdev
<klange> Hm, my rpi stub is still hardcoding command line options... I should switch that to getting them from the dtb... there's a lot I've hardcoded for the rpi400.
<GeDaMo> ddevault: I just looked at the ARM in Firefox and it looks like it works but only displays up to page 8050 :/
<ddevault> sometimes I have to refresh to get to the register index
<ddevault> try clicking register index in the ToC and hitting refresh until it works, or until you give up
<GeDaMo> I'm going to try and split it into smaller files
<ddevault> breaks references
<ddevault> but good luck
<GeDaMo> Yeah, I know
<ddevault> I depend heavily on references
<GeDaMo> pdfseparate segfaults :/
<epony> you're using a scripting language ;-)
<moon-child> lol
<epony> that inflates memory use 2x
<epony> (compared to the data processed)
<ddevault> just implement a PDF encoder/decoder in Hare
<ddevault> see you in 3 months
<epony> years
<epony> the place and time is here
<epony> hare there, achilles runs with lead sandals
<Ermine> GeDaMo: maybe malloc fails due to the size of the file?
<GeDaMo> I have memory! :P
<ddevault> I sure hope it doesn't malloc the whole file
<ddevault> though it's only 70M so
<kaichiuchi> hi
<Ermine> Ah, this is poppler, which is glib based
<Ermine> hi kaichiuchi
<Ermine> GeDaMo: valgrind says this is a stack overflow
<epony> the pdf format supports internal compression
<GeDaMo> :/
<epony> and vector graphics drawings are killing even reasonable machines
<epony> (on complex layouts and larger schematics)
<Ermine> HEAP SUMMARY: in use at exit: 89,698,879 bytes in 171,006 blocks
<Ermine> total heap usage: 1,933,738 allocs, 1,762,732 frees, 263,852,941 bytes allocated
seer has joined #osdev
<bslsk05> ​en.wikipedia.org: Talaria - Wikipedia
<bslsk05> ​en.wikipedia.org: Flyboard - Wikipedia
<epony> ^ compiled vs interpreted
invalidopcode has quit [Read error: Connection reset by peer]
<GeDaMo> I tried a different program called pdfexplode which produced a lot of apparently blank pages
invalidopcode has joined #osdev
<Ermine> At least it didn't exlode your machine
<GeDaMo> ... yet :|
<epony> you know compilation and other processing can happen on a larger machine targetting the smaller
<ddevault> look at you with your fancy "larger machines"
<epony> it's not really intended to work on the small machine interactively even on such "capable" modern variants
<ddevault> damn bourgeois kernel hackers
<epony> the luxury is in the hands of people creating 10K page documents
nyah has joined #osdev
smach has joined #osdev
<moon-child> ulimit?
seer has quit [Read error: Connection reset by peer]
<Ermine> moon-child: unlimited
bgs has joined #osdev
jjuran has quit [Quit: Killing Colloquy first, before it kills me…]
jjuran has joined #osdev
DanielNechtan is now known as bombuzal
Burgundy has joined #osdev
Ermine has quit [Quit: Cya!]
* kof123 mumbles about ancient lectern format...you can pre-render things for known resolutions...not unlike bitmap fonts versus scalable...
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
Ermine has joined #osdev
Ermine has quit [Remote host closed the connection]
Ermine has joined #osdev
smach has quit []
<epony> in view of modern times, the single greatest mistake is not using the hardware accelerators and built-in CPU extensions for fast and assisted processing of data
<epony> it's like 22 years since graphics are 3D capable and suitable for use of that in applications, and the graphics servers provide that functionality
<epony> they were usable since 1996-1998 but 2000 in general is when most graphics progressed to useful 3D rendering in place of the 2D/3D separation
<bslsk05> ​en.wikipedia.org: Hardware acceleration - Wikipedia
<kaichiuchi> god i forgot how nice i3 can be
stosby has joined #osdev
stosby has quit [Client Quit]
potash has quit [Read error: Connection reset by peer]
potash has joined #osdev
<kaichiuchi> and vim
<kaichiuchi> i think i’m getting old now
Ermine has quit [Ping timeout: 268 seconds]
Left_Turn has joined #osdev
k0valski18891 has quit [Quit: Peace out !]
Turn_Left has quit [Ping timeout: 272 seconds]
Ermine has joined #osdev
dude12312414 has joined #osdev
_HIA has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
<ddevault> one thing I'm unclear of about the ARM system timer is how the interrupts from it actually happen
<ddevault> do they raise an IRQ? can it be programmed?
_HIA is now known as unimplemented
<ddevault> okay yeah
<ddevault> raises IRQ 27 via the GIC
Burgundy has quit [Ping timeout: 268 seconds]
k0valski18891 has joined #osdev
unimplemented has quit [Read error: Connection reset by peer]
Burgundy has joined #osdev
jafarlihi has joined #osdev
<jafarlihi> In FreeBSD ext2 FS, ext2_root calls VFS_VGET where one of the arguments is `ino`, which is defined as "unique number assigned by fs when vnodes are first created" in manual. Does anyone know where these vnodes are "first" created?
<epony> check that symbol in the BSD cross reference
<epony> ext2 is not part of FreeBSD
unimplemented has joined #osdev
<epony> as in, not designed there, and is either an import from Linux or a minimal reimplementation (the second option more likely)
<epony> you'll see ext2 support in all of the three BSDs
<jafarlihi> I'm trying to implement FS, just trying to understand where these vnodes are first created
<epony> bascially ext2 is a "clone / descendant" late re-implementation of UFS/FFS in the Linux kernel space with changes betwee ext (early experimental designs) and ext2 (with ideas from BSD)
<epony> yes OK
<epony> now get the "design and implementation of the 4.4BSD system" by McKusick et all
<jafarlihi> I already have FreeBSD design and impl, it doesn't say much about fses, is it different for 4.4 book?
<epony> not much
<epony> it should because that's the book on the OS and the FS is integral part of it
<epony> so check again in the book
<jafarlihi> It just generally covers what fs is, not much helpful for implementer
<epony> can't have an OS that gave UNIX the UFS and its FFS rework withou it
<epony> you're mistaken
<epony> it has code snippets too and data structures
<epony> and logic how it operates
<epony> read the earlier book if you like
<jafarlihi> Why did you recommend the earlier book? Anything better about it?
<epony> there is also important detail on the buffer cache, don't skip that
<epony> I don't know what's in the later edition books ;-)
<jafarlihi> ok thanks
<epony> the 2nd edition of the book (FreeBSD) is from 2014 and has 1152 pages..
<epony> FreeBSD has extra details like GEOM that you probably will not be implementing
<epony> so, chapter 9 pages 506 to 615 is about the Fast Filesystem
<epony> that's what you need, the first short description in pages 70-75 are just "general details"
<epony> go further in the book
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<epony> 9.2 Structure of an Inode p508
smach has joined #osdev
<epony> let me check the older books too
<jafarlihi> ok i see thanks
<jafarlihi> what other books are there?
<epony> Linux kernel documentation on the ext2
<epony> and LPI (linux programming interface)
<jafarlihi> I'm not interested in ext2 besides how it interfaces with FreeBSD
<bslsk05> ​wiki.freebsd.org: Ext2fs - FreeBSD Wiki
<epony> there are 2 links in the first section
<bslsk05> ​svnweb.freebsd.org: [base] Index of /head/sys/fs/ext2fs
gildasio has quit [Ping timeout: 255 seconds]
invalidopcode has quit [Remote host closed the connection]
ephaptic has joined #osdev
invalidopcode has joined #osdev
<epony> obviously this VFS_ is for virtual file system http://fxr.watson.org/fxr/ident?i=VFS_VGET
<bslsk05> ​fxr.watson.org: fxr.watson.org: identifier "VFS_VGET"
eroux has quit [Read error: Connection reset by peer]
<epony> vget is an object read and write operator
eroux has joined #osdev
<epony> in that list vget, blkatoff, read, write, fsync
<jafarlihi> i gotta go
jafarlihi has quit [Quit: WeeChat 3.6]
unimplemented has quit [Read error: Connection reset by peer]
nanovad has quit [Quit: ZNC 1.7.5+deb4 - https://znc.in]
ephaptic has quit [Quit: WeeChat 3.7.1]
_HIA has joined #osdev
LostFrog is now known as PapaFrog
vdamewood has joined #osdev
ephaptic has joined #osdev
smach has quit [Read error: Connection reset by peer]
nanovad has joined #osdev
ephaptic has quit [Quit: WeeChat 3.7.1]
smach has joined #osdev
_HIA is now known as unimplemented
elastic_dog is now known as Guest3137
Guest3137 has quit [Killed (zinc.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
[itchyjunk] has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
dude12312414 has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
xenos1984 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
dude12312414 has joined #osdev
gog has joined #osdev
dude12312414 has quit [Client Quit]
unimplemented has quit [Read error: Connection reset by peer]
wootehfoot has joined #osdev
<gog> hi
<GeDaMo> Hi gog :)
<gog> what's shakin
unimplemented has joined #osdev
<Ermine> hi gog
<gog> hi Ermine
<kaichiuchi> hi goggles
<kaichiuchi> gog*
<kaichiuchi> .
<gog> goggies
<gog> poggies
<Ermine> poggles
<Ermine> heatles
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
<bslsk05> ​www.snopes.com: Was Jim Carrey Trained by a CIA Torture Expert on Surviving Grinch’s Makeup? | Snopes.com
<gog> nice
xenos1984 has quit [Ping timeout: 260 seconds]
smach has quit []
<gog> i chomped fishy again
danilogondolfo has quit [Remote host closed the connection]
xenos1984 has joined #osdev
invalidopcode has quit [Remote host closed the connection]
invalidopcode has joined #osdev
heat has joined #osdev
<heat> henl
<heat> 2day i went 2 dentisk and i am in 🅱️ain
<FireFly> oh no
<zid> Have you considered not having teeth
<zid> it's way simpler
<zid> beeth
<gog> heat: bazel
<zid> toothn't
<heat> i have 🅱️not
<heat> oops, 🅱️ot*
<mjg> what's up with this 🅱️ thing
* mjg == out of the loop
<zid> It's some meme
<heat> gen z humor
<mjg> ok, in that case it is pretty funny
<heat> gog, bazooms
Gooberpatrol66 has quit [Read error: Connection reset by peer]
<FireFly> reminds me of seeing a [B] sticker over the H in a sign to "Exhibition Halls" at congress
<epony> isn't genz genderless, so technically not a gen but just a ""
ephaptic has joined #osdev
<epony> at least the makeup is like kindergarden children that found their moms cosmetics and experimented a bit to immitate grandma
<kaichiuchi> heat: give me the drugs
<epony> (that may be leftovers from grandma anyway, since parents emmigrated in another state / dimension / hospital)
<heat> mjg has them
<mjg> already snorted my last dope
<mjg> admittedly upon reading this message
<epony> at least you have some moonshine to wash down the tide pods
<kaichiuchi> explains BSD
<epony> you've come to do programming on the rpi and chew bubblegum, and you're all out of bubbles
<gog> 🅱️ysergic acid diethylamide
<epony> more like solo-BSDM for the uninitiated
<bslsk05> ​bugzilla.tianocore.org: 4234 – UefiCpuPkg reaches a new low by BLATANTLY ignoring 32-bit Intel processors in commit 73ccde8f6d04
<epony> or BSMD.. whatever works for you
<kaichiuchi> hah
<epony> once you compile your liloinux into lilnucks.. it's not very interesting
<Ermine> "BSD and LSD were invented in the same place..."
<epony> that's about the funniest most important "scarification" to get on LeanUX
<epony> a couple of sessions tweaking and recompiling the kernel, and then redo that monthly to keep the hardening shit tougher during the rainy season
<epony> maybe LSD is invented somewhere else, but was practiced mostly in the English and new-England youths
<epony> DDT / LSD.. experimental spraying of young shoots
<epony> seems to have stuck with Donny the agent O'Range
<epony> anyway
<epony> I heard you like HURD
<epony> the GNU HURD
<epony> (use capitals like it's 1969 LISP AGAIN)
<epony> at least the Rpi is large enough to run Object Oriented Programming.. techniques of mastery and amazement in COMMON LISP
Turn_Left has joined #osdev
<epony> it's only 40 years late to save the Lisp Machines, Inc.
<bslsk05> ​en.wikipedia.org: Lisp machine - Wikipedia
Left_Turn has quit [Ping timeout: 256 seconds]
<epony> Apple product line goes here » https://en.wikipedia.org/wiki/Orphaned_technology
<bslsk05> ​en.wikipedia.org: Orphaned technology - Wikipedia
dude12312414 has joined #osdev
<heat> "Ignoring proper error handling is lazy and dangerous. It's the kind of attitude for which I would instantly fail any candidate at the interview stage. It's slightly worrying to see it exhibited in someone with push access to the EDK2 repository. On the plus side, this suggests that Intel-authored EDK2 code is likely to be a very productive place to search for Secure Boot exploits. :)"
<heat> holy shit i love the fucking drama
<zid> heat what is wrong with my cat
<heat> is it barking
<zid> she's hiding in the spare bedroom and hissed at me when I went to check on her
<kazinsal> the part where they realize they actually found a QEMU TCG bug in the process is amazing
dude12312414 has quit [Client Quit]
<epony> emulator bugs, unheard of
arminweigl_ has joined #osdev
<epony> virtualisation is like that too
arminweigl has quit [Ping timeout: 252 seconds]
arminweigl_ is now known as arminweigl
<epony> if you combine the two you get double whammy
<epony> the only thing you'd dearly miss are bugs in the host kernel, and in the compiler.. the CPU has them just fine™
<epony> oh, and that language you're using.. it's not working
<epony> the only good thing.. the standard library ;-)
<epony> (or much more, the standard which it tries to work with0
<gog> zid: is she lethargic
<gog> and is she getting enough water
<gog> cats tend to do that kind of thing when they're ill
<Ermine> poor kitty :(
<gog> or something startled her and she's feeling ways about it
<gog> but yeah keep an eye on her and see what she does if she keeps doing this and doesn't eat or drink anything then a vet visit might be in order
elastic_dog has quit [Ping timeout: 252 seconds]
elastic_dog has joined #osdev
<zid> she seems totally fine, just in a total mood
<zid> I think heat kicked her
<zid> he's like that
<gog> :o
<gog> no kick kitty
<gog> 3:<
<zid> she's been bored or something for a couple of weeks though
<zid> usually she sleeps on the sofa on a certain cushion but she's been all over the place
<zid> she sometimes does this though, re-trials all the sleeping spots
<kazinsal> you should get her a fort warms
<bslsk05> ​www.amazon.ca: K&H Pet Products Thermo-Kitty Heated Pet Bed Small Mocha 16" 4W : Amazon.ca: Pet Supplies
<kaichiuchi> i want a cat
<gog> mew
<kaichiuchi> also I can’t write makefiles
<kaichiuchi> people are wizards
<kazinsal> I got my mom's cat a fort warms for christmas and he is absolutely in love with it
<zid> or type apostrophes
<gog> nobody can sometimes we just get lucky
<zid> makefiles are dead easy as long as your project is dead easy
<zid> thing: dep\n\tcommand
<zid> https://github.com/zid/bootstrap/blob/master/Makefile Behold the most complex makefile I ever wrote
<bslsk05> ​github.com: bootstrap/Makefile at master · zid/bootstrap · GitHub
<gog> $🅱️OBJ
ephaptic has quit [Quit: WeeChat 3.7.1]
<zid> for C++ you probably wanna do the autogenerated dep graphs from headers think though
<kaichiuchi> i’m not doing C++
<zid> thing*
Gooberpatrol66 has joined #osdev
unimplemented has quit [Read error: Connection reset by peer]
<heat> i dont kicc catz
<heat> do u?
<zid> That's what someone who didn't wanna get bullied for kicking cats would say
<heat> i have 2 cat
<kazinsal> hug the cats
<heat> u have 1 cat? ur statistically more likely to kicc cat
elastic_dog has quit [Killed (mercury.libera.chat (Nickname regained by services))]
elastic_dog has joined #osdev
<kaichiuchi> no
<kaichiuchi> i want cats :(
<kaichiuchi> as long as they don’t cut my jugular in my sleep
<zid> two cat
<kaichiuchi> unfortunately where i live pets are forbidden
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<zid> from being found out about*
<kaichiuchi> but usually i end up holding them like a fucking fetus
<kaichiuchi> zid: allergies with other people
Starfoxxes has quit [Ping timeout: 264 seconds]
Starfoxxes has joined #osdev
terminalpusher has joined #osdev
vdamewood has joined #osdev
<bslsk05> ​www.xda-developers.com: Google announces official Android RISC-V support
<heat> trashy architecture taking strides
<zid> ah yes but it's *intentionally* trashy!
<zid> so it's okay
captnemo has joined #osdev
spikeheron has quit [Quit: WeeChat 3.7]
spikeheron has joined #osdev
wootehfoot has quit [Quit: Leaving]
<mats2> why do my farts smell so good
captnemo has quit [Quit: WeeChat 3.7.1]
<geist> yeah if it owns the trash that's okay
* mjg burps
vdamewood has quit [Read error: Connection reset by peer]
terminalpusher has quit [Remote host closed the connection]