Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 20 19:32
    engstad commented #720
  • Jan 20 19:19
    engstad commented #720
  • Jan 20 18:46
    MikailBag commented #720
  • Jan 20 18:01
    senseiod commented #720
  • Jan 20 18:01
    utterances-bot opened #720
  • Jan 20 15:20
    phil-opp commented #360
  • Jan 20 15:14
    bjorn3 commented #360
  • Jan 20 14:07
    phil-opp closed #360
  • Jan 20 14:07
    phil-opp commented #360
  • Jan 20 14:04
    phil-opp edited #360
  • Jan 20 13:32
    phil-opp commented #479
  • Jan 20 13:22

    phil-opp on master

    Reintroduce allocator designs p… Fix interal links Code will be available in post-… and 39 more (compare)

  • Jan 20 13:22

    phil-opp on allocator-designs

    (compare)

  • Jan 20 13:22
    phil-opp closed #719
  • Jan 20 13:20
    phil-opp labeled #719
  • Jan 20 13:20
    phil-opp opened #719
  • Jan 20 13:18

    phil-opp on allocator-designs

    Typo fixes Update release date (compare)

  • Jan 20 13:09

    phil-opp on post-11

    Create a new fixed_size_block a… Add ListNode type and BLOCK_SIZ… Add FixedSizeBlockAllocator type and 6 more (compare)

  • Jan 20 13:01

    phil-opp on allocator-designs

    Improve post introduction Minor improvements (compare)

  • Jan 20 10:48

    phil-opp on allocator-designs

    Fix typo (compare)

Antoine
@AntoineSebert
As you can see, the IDT is static : static ref IDT: InterruptDescriptorTable
which means its location memory is fixed
modifying it may not be possible, for it might conflict with nearby elements in the memory
so in the current implementation, it's not possible, but it doesn't mean it's not possible at all
(although I do not really see the point)
Sammy Hajhamid
@pepsipu
hi!
when i burn my OS to a usb, it doesn't show up on boot options
any ideas?
oh that's because i'm on uefi my bad
Petar Dambovaliev
@petar-dambovaliev
Hi, thanks for the great tutorial.
I just finished the Heap bit
Philipp Oppermann
@phil-opp

Sorry for replying so late!

@AntoineSebert

I have a question concerning the roadmap item "Kernel Processes"
Do you already have an idea how the processes will be represented as a data strucure ?

I haven't thought about yet, sorry.

@ethindp

I've done some digging and am now wondering if its possible for me to dynamically update the IDT in drivers to add interrupts only when a driver is being used and not every time the kernel boots -- even if that interrupt isn't being used at all?

You could create a new IDT after loading drivers. Maybe dynamically changing IDT entries works too, but I'm not sure if that's safe (you would probably need to use atomics).

@pepsipu

oh that's because i'm on uefi my bad

We don't have UEFI support at the moment, but it is planned.

@petar-dambovaliev

Hi, thanks for the great tutorial.

You're welcome! I hope everything worked without problems.

Petar Dambovaliev
@petar-dambovaliev
@phil-opp everything worked great! With the lack of knowledge about operating system design, can you point me to what can i add to the Kernel? Something not too big, so i don't get lost in complexity.
A friend has suggested that i should add graphics support, but i don't know where to start
And in what form it should be added
Scott McWhirter
@konobi
Something that's scoped more narrowly just to get rolling, could be something like ACPI
Philipp Oppermann
@phil-opp
@petar-dambovaliev For graphics support, we have an open pull request on the bootloader crate: rust-osdev/bootloader#60
Other than that, the next logical step would be to add multitasking aka threads and processes, but this has some rough edges unfortunately
Maybe you could try to add support for a PS/2 mouse. For an overview, see the OSdev wiki: https://wiki.osdev.org/Mouse
Scott McWhirter
@konobi
@phil-opp did you happen to see the oxide computing announcement? Should be interesting
Philipp Oppermann
@phil-opp
@konobi Yes! I'm excited to see what they will build
Petar Dambovaliev
@petar-dambovaliev
@phil-opp hey, is there some special arguments that need to be passed into qemu, for the mouse?
Petar Dambovaliev
@petar-dambovaliev
this osdev wiki is not ideal, it has some vague statements that don't point things out clearly enough
//The very next byte returned should be the Status byte
Ok fine but..where?
I had to look for some code out there to find out if it was on the 64 or 60
Scott McWhirter
@konobi
there's a ps/2 specific page on osdev that might be more appropriate... https://wiki.osdev.org/PS/2_Mouse
in terms of qemu, iirc the basic ps/2 is configured using chardev option with msmouse
Petar Dambovaliev
@petar-dambovaliev
@konobi hey, i saw this weird thing in a C driver. Do you have any idea what it is?

define MOUSE_MAGIC 0xFEED1234

Scott McWhirter
@konobi
no idea I'm afraid... I just have some experience with running qemu in production and some of that systems layer
Petar Dambovaliev
@petar-dambovaliev
So far, i have been able to initialize the mouse and handle the packets. Now i need to add the movement(need to figure out how to do scaling) and clicks.
Petar Dambovaliev
@petar-dambovaliev
@phil-opp hey, i have reached a point where i need some kind of a timer to be able to support double clicks and such. What would you suggest?
And i guess, we would have to leave the drawing of the mouse until we get graphic support.
Scott McWhirter
@konobi
PIT, APIC or HPET could be available
Petar Dambovaliev
@petar-dambovaliev
cool
i will check it out
thanks
It's work in progress
you can checkout what i have so far, going to try out different designs, after it's more or less working
@konobi
@phil-opp
Scott McWhirter
@konobi
@petar-dambovaliev iirc, the freebsd support for the mouse in the console (via moused) was pretty clean to read
Petar Dambovaliev
@petar-dambovaliev
@konobi for some reason, if trying to push an element into a vector, inside the init() method produces an allocation error, only under testing
The same code works when running/building
If i move that code to main, just bellow blog_os::init(), it works for both testing and building
which is very odd
Petar Dambovaliev
@petar-dambovaliev
duhh, i forgot they have different main methods for test and running
Philipp Oppermann
@phil-opp

@petar-dambovaliev

you can checkout what i have so far, going to try out different designs, after it's more or less working

Cool! I try to take a look soon.

Zachary Freed
@TheConfuZzledDude
So I'm trying to set up paging from scratch, and in the bootloader main.rs, you still set up a recursive mapping even though it gets unmapped later. Is it actually necessary to do?