Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 28 05:31
    kennystrawnmusic commented #1187
  • Jan 28 05:31
    kennystrawnmusic synchronize #1187
  • Jan 27 18:02
    kennystrawnmusic commented #1187
  • Jan 27 18:00
    kennystrawnmusic synchronize #1187
  • Jan 26 12:10
    phil-opp commented #1187
  • Jan 26 12:06
    kennystrawnmusic commented #1187
  • Jan 26 09:30

    phil-opp on main

    Fix broken links Merge pull request #1188 from p… (compare)

  • Jan 26 09:30

    phil-opp on fix-broken-links

    (compare)

  • Jan 26 09:30
    phil-opp closed #1188
  • Jan 26 09:16
    phil-opp opened #1188
  • Jan 26 09:14

    phil-opp on fix-broken-links

    Fix broken links (compare)

  • Jan 26 03:07
    kennystrawnmusic commented #1063
  • Jan 26 03:07
    kennystrawnmusic commented #1063
  • Jan 26 02:59
    kennystrawnmusic commented #1187
  • Jan 26 02:50
    kennystrawnmusic synchronize #1187
  • Jan 26 02:48
    kennystrawnmusic synchronize #1187
  • Jan 26 02:26
    kennystrawnmusic commented #1063
  • Jan 26 02:26
    kennystrawnmusic edited #1187
  • Jan 26 02:21
    kennystrawnmusic synchronize #1187
  • Jan 26 02:17
    kennystrawnmusic synchronize #1187
ethin
@ethindp:the-gdn.net
[m]
You'll obviously have to define your heap
Ignacio Tartavull
@tartavull
cargo build
    Updating crates.io index
   Compiling compiler_builtins v0.1.36
   Compiling core v0.0.0 (/Users/itq/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/core)
   Compiling rustversion v1.0.7
   Compiling bootloader v0.9.22
   Compiling x86_64 v0.13.6
   Compiling rustc-std-workspace-core v1.99.0 (/Users/itq/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/library/rustc-std-workspace-core)
   Compiling bitflags v1.3.2
   Compiling bit_field v0.10.1
   Compiling volatile v0.4.5
error[E0658]: const generics are unstable
   --> /Users/itq/.cargo/registry/src/github.com-1ecc6299db9ec823/volatile-0.4.5/src/lib.rs:686:21
    |
686 | impl<R, A, T, const N: usize> Volatile<R, A>
    |                     ^
    |
    = note: see issue #74878 <https://github.com/rust-lang/rust/issues/74878> for more information
    = help: add `#![feature(min_const_generics)]` to the crate attributes to enable

   Compiling bit_field v0.9.0
error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `volatile`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed
I'm stuck with this error
I tried adding #![feature(min_const_generics)] to src/main.rs and src/lib.rs but didn't help.
Ignacio Tartavull
@tartavull
I tried building post-6 but that failed too
ethin
@ethindp:the-gdn.net
[m]
Update your rustc install @tartavull
Ignacio Tartavull
@tartavull
that worked, thank you!
lubingyucn
@lubingyucn
Hello,how can I get involved in translation work?
phil-opp
@phil-opp:matrix.org
[m]
@lubingyucn: There is no formal process for adding a translator. You can just create a new translation and open a pull request, then we look for someone else that also speaks the language for a review. To avoid duplicated work, it's a good idea to open a draft PR very early to show other people what you're working on.
MysticalUser
@MysticalUser
Do I have to be a native speaker of the language to which I translate or is there a minimum CEFR level that's allowed?
phil-opp
@phil-opp:matrix.org
[m]
We don't have a clear rule on that yet, but I think you should be fluent in the language and know all relevant grammatical rules
tanguy.cavagna
@tanguy.cavagna:matrix.org
[m]

Hello !
I have a quick question. I just finished the external interrupt handling chapter of the tutorial, and a question went in my mind.
Given that I am not using an US layout keyboard (I am using an AINSI layout), is there any chance that in the following parts, the USB protocol will be implemented ?

btw, I love the tutorial. Very explanatory and easy to follow. Thanks

phil-opp
@phil-opp:matrix.org
[m]
Hi, great to hear that you like the tutorials! To use a different keyboard layout, you need to change the mapping of the scancodes. The pc-keyboard crate already supports different layouts: https://docs.rs/pc-keyboard/0.5.1/pc_keyboard/layouts/index.html . I'm sure that the crate maintainer will be happy to merge a PR to add more layouts if yours isn't supported yet.
tanguy.cavagna
@tanguy.cavagna:matrix.org
[m]
Thank you !
A quick other thing. I do know how difficult it is to make a tutorial of this scale, but when do you think that the next chapter will be available ?
phil-opp
@phil-opp:matrix.org
[m]
I'm currently working on a major refactor of the series, based on a new version of the bootloader crate. The goal is to simplify the build process, add support for booting on UEFI machines, and use the APIC for interrupt handling. Afterwards, I'm planning to add more posts again, but don't expect this anytime soon.
tanguy.cavagna
@tanguy.cavagna:matrix.org
[m]
alright np. Nice to hear that. I'll continue on my owm trying out some stuff to make a simple UNIX like system but I don't expect much haha. OS programming is quite challenging lmao
phil-opp
@phil-opp:matrix.org
[m]
Cool :). Yeah, it can be a bit challenging at times. If you have discord, I recommend joining the #os-dev channel on the Rust Community Server. It's a good place to ask questions! https://discord.gg/rust-lang-community
tanguy.cavagna
@tanguy.cavagna:matrix.org
[m]
nice thank, I'll take a look
vitto
@scovit:matrix.org
[m]
Hi all, I'm new to Rust and I wanted to give it a try by following this tutorial. I get stuck with running cargo bootimage. It croaks with the following error: note: rust-lld: error: undefined symbol: _rest_of_bootloader_start_addr
any clue of what this may be?
Compiling bootloader v0.9.23 (/Users/vscolari/.cargo/registry/src/github.com-1ecc6299db9ec823/bootloader-0.9.23) error: linking withrust-lldfailed: exit status: 1
i'm on MacOs
vitto
@scovit:matrix.org
[m]
he has the same issue
phil-opp
@phil-opp:matrix.org
[m]
Looks like it's a regression in the Rust compiler. See https://github.com/rust-osdev/bootimage/issues/87#issuecomment-1272867264 for details. I recommend to use an older nightly until the issue is fixed.
Dreadlord1981
@Dreadlord1981
Hi @phil-opp
Love your series on development of an OS :-)
i was wondering if / when the next chapter will release..?
i am still very new to the whole OS devops, but your blog has helped alot to understand some of the basic :-)
phil-opp
@phil-opp:matrix.org
[m]
Hi @Dreadlord1981! Thanks, great to hear that you like it :). The next step for the blog will be a new third edition, which will do a few things differently (UEFI support, APIC instead of PIC, pixel framebuffer instead of VGA text mode). Unfortunately, I'm a bit short on time right now, so I can't really give you an estimate when it will be ready...
Dreadlord1981
@Dreadlord1981
HI @phil-opp:matrix.org
Take your time and have fun :-) i will look forward to when you have time update the blog and enjoy the guides :-)
Thanks in advance :-) and keep up the great work :-)
phil-opp
@phil-opp:matrix.org
[m]
Thanks :)
Sean Con
@naturalmechanics
Hello
How easy would it be to port it to ARM? Will you eventually make a bootloader for ARM (Esp TI sitara)?
I am trying to find an easy hack able ground up OS for that platform
The big idea is to connect multiple processors and share threads among them
phil-opp
@phil-opp:matrix.org
[m]
Hi, I don't have any plans to create an ARM bootloader right now. ARM is quite different than x86 in many aspects, so porting the tutorial is not that easy. The fundamental concepts (e.g. page tables, interrupts, etc.) are similar though
What kind of ARM core do you have? There are different classes of processors that provide different levels of abstraction. For example, Cortex-M cores do not have a memory management unit, which makes them unsuitable for general purpose operating systems.
Sean Con
@naturalmechanics
Hi i am looking at cortex A9
More specifically
Sitara AM437x from TI
phil-opp
@phil-opp:matrix.org
[m]
I think you should be able to create a full OS on that. I'm not aware of any Rust tutorials for that processor, though..
Rémi Boivin
@remi-boivin

Hello everyone :)
I'm following the tutorial to build a minimal kernel
error: failed to run rustc to learn about target-specific information but I've this error on windows powershell

Caused by:
process didn't exit successfully: rustc - --crate-name ___ --print=file-names --target \\?\C:\workspace\blog_os\x86-64-blog-os.json --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg (exit code: 1)
--- stderr
error: target file "\\?\C:\workspace\blog_os\x86-64-blog-os.json" does not exist

Someone had the issue ?

phil-opp
@phil-opp:matrix.org
[m]
Are you sure that you passed the correct file name for the target? On the blog we use the file name "x86_64-blog_os.json", which is slightly different than your "x86-64-blog-os.json" target (hyphens instead of underscores).
Rémi Boivin
@remi-boivin
@phil-opp:matrix.org Yeah I'm sure I've changed the name because of the error. I think windows does some obscure shit and I don't know what
vishnukumarkalidasan
@vishnukumarkalidasan
Hello Everyone, I am trying to add APIC support for network access in blogos. i believe the existing bootloader version does not support this with PIC8259. is there a development branch with the APCI and APIC support or network access support?
Eshan Singh
@naiveai
Hey, I'm trying to set up a Rust book similar to this one, with varying versions that all build on one another. I wanted to ask, how does the infrastructure for this project work? How do those separate branches all get collated into one main target version that gets deployed to the actual blog? So far, I'm using mdbook and keeping all the versions in the same folder, but it's already getting incredibly tedious. If someone could point me to some resources on how the blog author did this/some templates/other info, I'd greatly appreciate it.
phil-opp
@phil-opp:matrix.org
[m]
Hi @naiveai: We use post-XX branches for the code, which are merged into each other. So if we e.g. change some code in post-04, we merge it into post-05 afterwards, then post-05 into post-06, and so on. We have a script for that, so we only need to do it manually when there are conflicts.
The blog text is independent of the post-XX branches, so we have to keep it in sync with the code manually.
@vishnukumarkalidasan: We don't have a blog_os version with ACPI/APIC support yet, but it is planned. We just released a new v0.11 version of the bootloader together with some migration guides. Among other things, these guides outline the necessary steps to get the APIC working.
Juanjo Asensio García
@asensio-project
Hello, I am trying to make a rust kernel with the latest version of the bootloader (currently 0.11.0). When I try to print to the framebuffer via a logger (is the same code that is in the logger of the bootloader) I get an error when using init_logger():error[E0597]: framebuffer does not live long enough
--> kernel/src/main.rs:19:18
|
19 | let buffer = framebuffer.buffer_mut();
| ^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough
20 | init_logger(buffer, info);
| ------------------------- argument requires that framebuffer is borrowed for 'static
21 | loop {}
22 | }
| - framebuffer dropped here while still borrowed
I don't understand this error because framebuffer isn't dropped because main is a divergent function.
Thanks in advance for the answers.
Juanjo Asensio García
@asensio-project
I opened a PR in the bootloader for fixing it. It is rust-osdev/bootloader#319