[HN Gopher] Operating System Development Tutorials in Rust on th...
___________________________________________________________________
Operating System Development Tutorials in Rust on the Raspberry Pi
Author : loose11
Score : 172 points
Date : 2021-09-26 13:54 UTC (9 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| nmz wrote:
| This is such a bad idea, like putting a lawn mower engine on a
| monster truck.
| xondono wrote:
| What? That analogy doesn't make sense, the RPi is not the
| development machine, it's the target.
| lbj wrote:
| Absolutely fantastic tutorial, thats going straight to bookmarks.
| Decabytes wrote:
| Tangentially related are there any hobbyist operating systems
| built on top of the linux kernel, that work radically different
| from your standard run of the mill OSes like Ubuntu?
| phendrenad2 wrote:
| In theory it should be possible to use the Linux kernel and
| create an OS that doesn't resemble Linux distros like Ubuntu.
| You could strip out systemd and put in a custom init system
| that doesn't conform to the typical Unix daemon startup
| expectations. You could write your own X11/wayland-like display
| server thing (like Android does). You could replace BASH with
| some other terminal (even something like PowerShell).
|
| Some things are baked into the kernel and are tricky to work
| around. Like the execute bit. If you wanted to make a Linux
| distro that can run arbitrary binaries downloaded from the
| internet (like Windows) you'll have to contend with the kernel
| refusing to execute a binary that doesn't have the x bit set at
| the filesystem level. (Can you even execute files from fat32 or
| NTFS? Hmmm...)
|
| Another example is the Unix file system layout. If you wanted
| to show the user a DOS-style drive-based layout (I.E. no /mnt
| or /bin or /etc, but instead C:\ and D:\\) then you have to
| fork GTK and GNOME to know how to obfuscate the file system
| like that.
| [deleted]
| rackjack wrote:
| NixOS is abnormal, though I don't know if it's hobbyist. But at
| some level OSes built on the Linux kernel will all have the
| same "flavor", since the kernel is THE abstraction between
| hardware and software. So if you want something REALLY radical
| (I know this is deviating from your original premise), you'll
| want to look at other kernels. Google's Fuchsia comes mind, as
| does PhantomOS.
| teleforce wrote:
| This is an excellent textbook on operating system based on
| Raspberry Pi:
|
| https://www.arm.com/resources/education/books/operating-syst...
| amelius wrote:
| I hope they can make the Pi boot faster ... It's the one thing
| keeping the Pi from being useful in most of my embedded projects.
|
| I like to compare it to webpage load time. In the beginning of
| the web, 5 seconds used to be ok, but nowadays the user wants
| sub-second load times or they literally walk away. Similarly,
| devices that don't turn on instantly lose points on UX as well.
| magicalhippo wrote:
| Clearly you're after a suspend/deep sleep mode rather than
| power-off. Have you looked at the alternatives such as the i.MX
| family?
| pc86 wrote:
| I'm not super familiar with RP, what is the typical boot time?
| amelius wrote:
| It depends on who you ask, but usually it's more than 10
| seconds, which is too much if you want to embed it into a
| device that must have an "instantly on" experience.
|
| Even the 4 seconds mentioned by the sibling commenter would
| be too much (e.g. if a page load of 4 seconds is considered
| "long", then turning on a device should be shorter as well).
| detaro wrote:
| I very much doubt another OS on the Pi is going to save you
| then. (and what the best solution is depends very much on
| your actual use case and problem)
| detaro wrote:
| hardware/bootloader stage take around ~2s. After that it's on
| the OS, a stripped down Linux can get down to also ~2s on top
| of that if you don't need all the hardware. The more IO you
| need ready, the longer it takes.
| sitzkrieg wrote:
| depends on the version of the bootloader and board too. it
| varies a LOT and often times will sit for over 5 seconds
| before even starting linux
| jeroenhd wrote:
| It honestly sounds like you shouldn't be using a raspberry pi
| if this level of responsiveness is what you need. Get an ESP32
| instead if you want instant response times, or leave the Pi
| running at all times.
| PragmaticPulp wrote:
| This isn't really relevant to booting Linux faster because it's
| about bare-metal programming a toy operating system. More of a
| learning tutorial than a practical replacement for standard
| Linux.
|
| There are plenty of guides for speeding up Raspberry Pi Linux
| boot: http://himeshp.blogspot.com/2018/08/fast-boot-with-
| raspberry...
|
| If you're developing a true embedded product then you'll be
| making a customized Linux distribution anyway, which will only
| include the minimum features needed during boot for your
| application.
| amelius wrote:
| I just wish Linux booting could be done in a lazy manner,
| such that stuff is only booted when it is needed.
| jlalfonso21 wrote:
| Don't know if someone in HN have cookie tracking but just a
| minutes ago I was looking for this
| rmorey wrote:
| https://www.google.com/search?q=baader+meinhof+phenomenon
| clone1018 wrote:
| I love hobbiest operating systems! In a world of billions of
| software projects, it's sad only a small handful are OSes. I
| really love to watch what the Serenity[0] project is working on
| and I've been working to get it running on an older computer.
| However parts are harder to find & the spec requirements are very
| specific (drivers are hard).
|
| I love the idea of doing more operating system experiments on
| RPIs just because of the availability & consistency of the
| platform. You don't have to worry about thousands of drivers for
| the most part, plus if you're using the RPI 400[1], basically
| everything is included in the keyboard!
|
| Rust seems like a good way to get people involved as well,
| because of it's innate following. Excited to give this tutorial a
| try.
|
| [0] https://github.com/SerenityOS/serenity [1]
| https://www.raspberrypi.org/products/raspberry-pi-400/
| BrightGlow wrote:
| I tried really hard to like SerenityOS but I think the decision
| to make it a UNIX-like POSIX system is a mistake. The POSIX API
| is outdated and broken in a lot of ways. I wish people would
| stop making UNIX-like operating systems, we have enough of
| those to deal with considering just the Linuxes and the BSDs.
| userbinator wrote:
| What do you think of the notoriously closed/proprietary
| attitude of Broadcom and the near unavailability of
| documentation?
|
| I think the standard PC is a far better platform for OS
| development --- decades of backwards compatibility mean
| documentation is plentiful, and so is sample code.
| smorgusofborg wrote:
| When I did OS development we used MacBooks for x86
| development. If a "standard PC" exists the Apple fell far
| from it, but they have to keep their OS running more than
| they need to save a buck on the next 10000 units.
___________________________________________________________________
(page generated 2021-09-26 23:01 UTC)