[HN Gopher] Fiwix: Small Unix-Like Kernel
___________________________________________________________________
Fiwix: Small Unix-Like Kernel
Author : coolcoder613
Score : 59 points
Date : 2025-02-05 12:09 UTC (10 hours ago)
(HTM) web link (www.fiwix.org)
(TXT) w3m dump (www.fiwix.org)
| Rochus wrote:
| What's the difference to e.g. xv6?
|
| There are already so many Unix like operating systems of all
| sizes written in C (e.g. Minix, xv6, BSD, Darwin, Hurd, Lemon,
| MentOS, SanOS). If I were to go to such an effort, I would try
| another language, or even my own (like e.g. Bunnix written in
| Hare). It is meanwhile more than clear that it can be done in C.
| But C is not really a good programming language (weird syntax,
| incomplete type checking, many specification gaps, etc.), so it
| would actually be more interesting to explore the suitability of
| other languages for such a task.
| sjsdaiuasgdia wrote:
| When you write one, you can make those choices however you
| like.
|
| This target was sufficiently interesting to the people who
| pursued it. It doesn't have to meet your arbitrary standards.
| Rochus wrote:
| Unfortunately, your comment neither answers my question nor
| is it helpful in relation to the other arguments.
| sjsdaiuasgdia wrote:
| Other people's hobbies don't have to align to your
| priorities.
|
| In other words: https://i.kym-
| cdn.com/entries/icons/facebook/000/043/517/i_d...
| Rochus wrote:
| I asked out of interest and explained my point of view,
| imposing neither standards nor priorities. Why are you
| reacting so hostile to a question?
|
| Isn't it rather your intention to enforce your "standard"
| for questions and opinions that suit you?
| IgorPartola wrote:
| You are asking a question that doesn't make sense. It
| seems like to you it does, and to others it sounds like
| "what does the color blue taste like?" People do stuff
| for fun. It doesn't have to be useful. Or it can be
| useful to them because it isn't the existing thing. xv6
| is great, this is different. It makes different choices
| and studying the differences can be a good thing.
| Comparing two different pieces of software written in the
| same language is sometimes exactly what you want.
|
| The logic of "something similar already exists so don't
| bother" is reductive. I am sure 99% of hobbyist software
| is useless to anyone but the person who wrote it. It
| still helps people learn and become professionals.
|
| Remember a few weeks ago there was a post here by a high
| school student detailing building a laptop from scratch.
| Was that wasted effort because you can just buy a laptop?
| Was Linux wasted effort? Why does this project offend you
| so much that you keep commenting on it in such a negative
| way?
| Rochus wrote:
| > _Comparing two different pieces of software written in
| the same language is sometimes exactly what you want._
|
| And here we are at my question, which obviously makes
| sense. So what's the difference to xv6? Why did the
| author consider it important to implement yet another
| unix-like system in C? What is the core benefit of this
| specific kernel? The website doesn't provide an answer.
|
| > _that you keep commenting on it in such a negative
| way?_
|
| That is a false accusation. I have not said anything
| negative about this project.
| rangerelf wrote:
| I think it's a cool project even though I have no
| interest in downloading and running it, but it's a
| technological curiosity that might yield some insight of
| other things.
|
| If you're so hell-bent on knowing what differentiates
| Fiwix from xv6 why don't you download the projects and
| compare them? You shouldn't be asking others to do your
| work for you, or to justify their choices and actions to
| you.
| Rochus wrote:
| > _You shouldn 't be asking others to do your work for
| you, or to justify their choices and actions to you._
|
| Are you serious? This is HN, so it's reasonable to assume
| that there are people here (obviously not you) who know
| the project and can answer questions about it quickly.
| After all, the project author has even set up a dedicated
| website and is asking for support for his project. It
| should be in his and the other project contributors'
| interest to communicate the advantages of the project to
| people on their own initiative. I don't consider it my
| job to analyze the source code to find out for myself.
| I'm very interested in lean operating systems, especially
| for embedded SMP systems, but my time is limited.
| kube-system wrote:
| > Why did the author consider it important to implement
| yet another unix-like system in C? What is the core
| benefit of this specific kernel? The website doesn't
| provide an answer.
|
| The website does answer your questions:
|
| > It is designed and developed mainly as a hobby OS
|
| A hobby is something that someone does for their personal
| enjoyment; it isn't any more complicated than that.
| Rochus wrote:
| > _It is designed and developed mainly as a hobby OS_
|
| That doesn't answer my questions at all; e.g. Linux also
| started out as a hobby, and yet Linus had a clear
| position on why he considered his system to be better
| than e.g. Minix, and why he made certain design
| decisions. Hobby does not in any way preclude rational,
| goal-oriented motivation.
| kube-system wrote:
| > Hobby does not in any way preclude rational, goal-
| oriented motivation.
|
| And it doesn't imply one, either. Most hobbies are just
| hobbies, that began as hobbies, and continue to stay
| hobbies.
|
| Replace programming with any other hobby here -- It would
| be ridiculous to say, in response to someone showing a
| hat they they've knit: "Why did you consider it important
| to knit yet another hat? What is the core benefit of this
| specific knit hat?"
| Rochus wrote:
| > _It would be ridiculous to say, in response to someone
| showing a hat they they 've knit: "Why did you consider
| it important to knit yet another hat? What is the core
| benefit of this specific knit hat?"_
|
| Not at all. Knitting has a clearly defined purpose: to
| make a particular garment with a particular shape and
| pattern so that you can wear it, give it as a gift or
| sell it (coincidentally, I have detailed first-hand
| insider knowledge on this topic). But I don't think we
| need to continue this discussion because it doesn't bring
| me any closer to the answers to my questions, and
| apparently you don't have the answers either.
| kube-system wrote:
| No, hobbies are done for the enjoyment of the activity
| itself. That's what the word means. The answer to your
| questions is likely "there is no advantage" and "because
| the author thought it was fun"
|
| You are asking questions about things that were never
| asserted in the first place. "Why did the author consider
| it important to implement yet another unix-like system in
| C?" _Nobody ever said it was!_
| mytec wrote:
| If you left it at the initial question this might have
| been an entirely different thread.
|
| "There are already so many Unix like operating systems of
| all sizes written in C... If I were to go to such an
| effort, I would try another language...It is meanwhile
| more than clear that it can be done in C...so it would
| actually be more interesting to explore the suitability
| of other languages for such a task."
|
| Based on your earlier remarks why not say knitters should
| use different material or needles to make it more
| interesting? Why do the same pattern over again when so
| many knitters have probably knit the very same pattern
| already.
|
| Because the statements above miss the point of what hobby
| means to most people.
|
| >> and apparently you can't answer the questions either
|
| No one is required to. Not anyone on HN or the hobbyist
| in question.
| dkenyser wrote:
| > since it serves also for educational purposes, the kernel
| code is kept as simple as possible for the benefit of students
| and OS enthusiasts
| Rochus wrote:
| Same as e.g. xv6.
| Paul-Craft wrote:
| This one is just a hobby (won't be big and professional like
| gnu), after all. ;-)
| Rochus wrote:
| Most other mentioned are also just hobby kernels; actually
| also Linux and BSD started that way.
| homarp wrote:
| parent is quoting this https://fossbytes.com/linus-
| torvaldss-famous-email-first-lin...
| BirAdam wrote:
| C has been the standard system language almost since the time
| of its creation. Teaching that standard is valuable even if
| we're in the midst of a change.
|
| As for why, a system designed to be pedantic will necessarily
| be different from one intending to be production ready.
|
| Why i386 and BIOS? It is simple enough for the purpose of
| teaching. Inundating a student with modern x86-64, UEFI (where
| most implementations do not meet standards), and such is not a
| great idea. People just get overwhelmed and shut down. It may
| be worthwhile to start with something simpler honestly, like
| DOS and 8088, or even CP/M and 8080. Working one up through
| time exposes the individual to simpler things and then
| progressively more complex things. It is useful.
|
| As a side benefit, teaching people about these older things
| instructs them on how and why things came to be the way they
| are which may help create better entrepreneurs.
| Rochus wrote:
| > _even if we're in the midst of a change._
|
| What change do you refer to?
|
| Concerning C: C has obviously proven itself in countless
| system and embedded projects of all sizes. Nevertheless, C
| essentially represents the state of knowledge of the early
| seventies. Projects like the one discussed would be a good
| opportunity to test newer languages for their suitability for
| operating system and embedded development, without the
| pressure of a commercial project.
|
| > _Why i386 and BIOS? It is simple enough for the purpose of
| teaching._
|
| Agree; that's also one of the reasons operating systems like
| xv6 dedicated for teaching do so; I'm therefore interested in
| how Fiwix positions itself in relation to xv6.
| pjmlp wrote:
| C was hardly seen as systems language in 8 and 16 bit home
| computers, just one more to chose from, as most compute
| intensive stuff was actually still written in Assembly.
| PeterWhittaker wrote:
| Interesting. While I do appreciate that it runs on i386, I have
| to question its being aimed at students - or at least students of
| anything other than the history of computing. i386 implies BIOS,
| AFAIK, and requires pre-x86_64 assembler, which is only partially
| transferable to modern CPUs.
|
| Oh, for sure, one would learn an awful lot working with those
| technologies, but as soon as one wished to work on more modern
| systems, one would have to forgot all of the former and all the
| ugly of the latter.
|
| This isn't really a criticism, more an expression of puzzlement.
| Normally, I'm a pretty good contrarian, but I don't get it.
|
| True, there was this Finn who did this some time ago and it
| worked out pretty well, but I still don't get why anyone would
| start with i386 and BIOS.
| MisterTea wrote:
| > i386 implies BIOS, AFAIK, and requires pre-x86_64 assembler,
| which is only partially transferable to modern CPUs.
|
| Nothing wrong with this IMO. You dont want a 64-bit Arm/x86
| hegemony. If the OS is designed properly you won't notice the
| platform underneath which means you have the right
| abstractions. That is an important challenge for students -
| decoupling platform dependency from the OS architecture. It
| also teaches them older tech which gives them a history lesson
| so they understand how and why we got here.
| 6SixTy wrote:
| If a 64 bit ARM/x86 hegemony is a big concern, then why not
| drop i386 and go with RISC-V? There's both a 32 and 64 bit
| variants, and a free emulator. Also, it's more useful
| academically and practically.
| MisterTea wrote:
| Well Risc-v isn't as established as 32bit x86 which has a
| wide breadth of information available. There are also
| plenty of 32 bit x86 machines still around so testing your
| OS on real hardware and watching your programs work is
| quite a treat.
| josephg wrote:
| > There are also plenty of 32 bit x86 machines still
| around
|
| All x86_64 machines can also run 32 bit x86 code just
| fine. They have to - even modern CPUs start up in
| emulated 16 bit mode like it's the 80s. They then they
| need to transition to 32 bit mode. And from there they
| can swap to 64 bit mode to run modern operating systems.
|
| But you don't have to do that last step. So this kernel
| should be able to run on any modern x86 computer on raw
| hardware just fine.
| 6SixTy wrote:
| RISC-V has plenty of reference documentation and
| implementation code from hardware to the OS Kernel. Open
| source and free too.
|
| And running on real hardware is pretty much the last
| thing any OS dev actually does. Using a VM with a
| debugger attached rather than trying to figure out how to
| set up a debug harness is more convienent.
| bitwize wrote:
| You can write a fully 32-bit kernel, delegate entering
| protected mode and using the BIOS to load from disk to the
| bootloader, and tell your students "this bit won't be on the
| exam".
| bitwize wrote:
| Just a hobby, not big and professional like GNU. I love it.
___________________________________________________________________
(page generated 2025-02-05 23:01 UTC)