Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 11 17:24
    faraazahmad commented #449
  • Oct 11 17:24
    faraazahmad commented #449
  • Oct 11 14:47
    faraazahmad commented #449
  • Oct 09 06:19
    AntoineSebert commented #405
  • Oct 09 06:00
    artizzq commented #405
  • Oct 08 19:44
    phil-opp commented #405
  • Oct 08 17:44

    phil-opp on post-06

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 3 more (compare)

  • Oct 08 17:44

    phil-opp on post-08

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 5 more (compare)

  • Oct 08 17:44

    phil-opp on post-03

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… (compare)

  • Oct 08 17:44

    phil-opp on post-05

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 2 more (compare)

  • Oct 08 17:44

    phil-opp on post-04

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 1 more (compare)

  • Oct 08 17:44

    phil-opp on post-02

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… (compare)

  • Oct 08 17:44

    phil-opp on post-10

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 7 more (compare)

  • Oct 08 17:44

    phil-opp on post-07

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 4 more (compare)

  • Oct 08 17:44

    phil-opp on post-09

    Use latest nightly with rustfmt… Merge branch 'post-01' into pos… Merge branch 'post-02' into pos… and 6 more (compare)

  • Oct 08 17:44

    phil-opp on post-01-rustfmt-nightly

    (compare)

  • Oct 08 17:44

    phil-opp on post-01

    Use latest nightly with rustfmt… (compare)

  • Oct 08 17:44
    phil-opp closed #679
  • Oct 08 17:41
    phil-opp opened #679
  • Oct 08 17:39

    phil-opp on post-01-rustfmt-nightly

    Use latest nightly with rustfmt… (compare)

Lachlan Sneff
@lachlansneff
It's probably safe to say that the new interface is stable.
Philipp Oppermann
@phil-opp
And it's good that the infrastructure no longer depends solely on me^^
Lachlan Sneff
@lachlansneff
Indeed
Scott McWhirter
@konobi
howdy all
I've been trying to get blog_os up and running on OSX, I've gotten it all to build without error, but the kernel just hangs and never outputs anything
is this specific to binutils on OSX? if so, is there some documentation on what/how to change the linker used somewhere?
@phil-opp great blog series btw... definitely one of the best approaches I've seen to explaining os dev in a consumable way in a long time
Scott McWhirter
@konobi
oh... was able to coax qemu on osx to show it up (using -curses as a qemu option)... looks like qemu on OSX has some pain points that make things tough to debug
Scott McWhirter
@konobi
@phil-opp I noted there's some interest in supporting ARM perhaps... has there been any movement along those lines at all?
Lachlan Sneff
@lachlansneff
Has anyone put thought into making an uefi version of the bootloader?
It doesn't look like it'd be much work.
Scott McWhirter
@konobi
it's been a few years, but the uefi tooling at the time was really quite poor... hopefully that's improved since
I have prior experience working with the u-boot source and the freebsd loader on ARM (armv7) and am currently interested in experiments with low cost, high performance ARM64 SBCs, so am hoping to avoid redundant work if an ARM bootloader is on the cards
Lachlan Sneff
@lachlansneff
No one is currently working on one unfortunately. You could though!
Scott McWhirter
@konobi
Cool... I'll likely be working with something like this... https://www.pine64.org/?page_id=61454
(either this, or another high spec "open" board)
which should hopefully make it more accessible to hobbyists
Lachlan Sneff
@lachlansneff
Awesome
Scott McWhirter
@konobi
yeah... $80 isn't too far out of reach
Philipp Oppermann
@phil-opp

@konobi Hi! Sorry for the late reply, I've been on vacation.

great blog series btw... definitely one of the best approaches I've seen to explaining os dev in a consumable way in a long time

Thanks so much!

oh... was able to coax qemu on osx to show it up (using -curses as a qemu option)... looks like qemu on OSX has some pain points that make things tough to debug

Never heard of this issue. So the QEMU window didn't open without the -curses option?

I noted there's some interest in supporting ARM perhaps... has there been any movement along those lines at all?

Not much. The biggest problem is that ARM is so heterogeneous, i.e. there are all kinds of boards with very different features (some of them don't even have a MMU). So writing a general ARM tutorial that works with multiple boards is difficult. I imagine that we could provide some "Porting to X" posts as soon as there is enough functionality in the kernel (where X are various boards, e.g. raspberry pi or the ROCKPro64 you mentioned).

@lachlansneff

Has anyone put thought into making an uefi version of the bootloader?

UEFI support would be great! We had some discussion about this in https://github.com/phil-opp/blog_os/issues/349#issuecomment-381163174.

Scott McWhirter
@konobi
@phil-opp yeah... I took a look through the field again and reminded myself of just how hit and miss it was. It has thankfully had a flurry of new and better tooling for those platforms, but yeah... it's a minefield. There's 2 aspects that are promising though... quite a bit can be taken care of by use of FDT to take care of some of those issues at build time, but also that the ARM hardware is now cheap enough that restricting a kernel's functionality to a known set of features is less of a barrier to entry than the difference between Intel and AMD
qemu on osx didn't want to open at all... possibly due to xquartz being hit and miss
(the gui window that is)
Philipp Oppermann
@phil-opp

qemu on osx didn't want to open at all... possibly due to xquartz being hit and miss

Hmm, never heard of that issue (and I believe there are some people who implemented the blog on macOS). How did you install QEMU?

the ARM hardware is now cheap enough that restricting a kernel's functionality to a known set of features is less of a barrier to entry than the difference between Intel and AMD

What do you mean? That ARM is cheap enough so that everybody can just buy a specific board?

Scott McWhirter
@konobi
@phil-opp homebrew... my xquartz is royally messed though... not sure if that's how they tried to implement the "cocoa" display option
not so much a specific board as a board with a specific base featureset
Philipp Oppermann
@phil-opp
Ah, so maybe it's just an issue with your setup, and not "normal" macOS machines.
Makes sense
I'm open for adding ARM support, but I don't have the time to look into it myself at the moment
Scott McWhirter
@konobi
yeah... no worries... trying to gather the info for ARM booting seems to be the bottleneck for me... it's just not as available as x86 in forms such as the osdev wiki
Lachlan Sneff
@lachlansneff
qemu works just fine on my macbook
Scott McWhirter
@konobi
is the window you get via xquartz?
Lachlan Sneff
@lachlansneff
Dunno, I just installed qemu through homebrew
Aleksey Halahan
@skyne98
Hey, guys, can anyone please explain why we have MMU for "pointer translations", but all the kernel implementations seem to use software translation of pointers from virtual to physical?
Or, maybe I am just missing something and after enabling paging all the pointers are treated as virtual pointers
Lachlan Sneff
@lachlansneff
When code is running, pointers are automatically translated by the mmu when dereferenced.
Sometimes the kernel needs to know the physical address of some virtual memory, so it translates it with whatever method it uses.
Aleksey Halahan
@skyne98
So, basically, the whole software implementation is made only to cover some cases, where we will need to manually translate the address?
@lachlansneff, thanks for the answer, btw!
Also, isn't there any kind of interrupt we can make to call the MMU directly for it to make a conversion for us?
Aleksey Halahan
@skyne98
Also, @lachlansneff, can I maybe ask you a couple of OS related questions in the private chat?
Lachlan Sneff
@lachlansneff
Sure, go ahead.
Yeah, there's no instruction to ask the mmu to translate an address.
Ben Gubler
@nebrelbug
Anyone have resources for drawing graphics on the screen and/or using UEFI?
Philipp Oppermann
@phil-opp
I don't have much experience with it, but it seems like this is easiest with VESA. The osdev wiki has some tutorials and the Redox kernel has implementations for both BIOS boot and UEFI boot. I think this has to be done in the bootloader (at least with BIOS booting)
Scott McWhirter
@konobi
iirc, includeos has some pretty basic VGA and console functionality that might be handy for reference
Philipp Oppermann
@phil-opp
I just implemented rust-osdev/bootloader#35 to support a basic 320x200 vga buffer
Scott McWhirter
@konobi
@phil-opp it's a shame font8x8 doesn't have something for U+FFFD... seems like that could be handy to have to avoid panic-ing on unknown characters
Philipp Oppermann
@phil-opp
Yeah.. Maybe there is some other symbol we can use? Or maybe it's possible to add it to font8x8..