mysterydip 9 days ago

> I made it and I'm proud of that

And that's all that matters for a hobby project. Congrats!

lolinder 9 days ago

To anyone else who read the Spanish version first, note that the English version is longer and has the link to download the source code!

changexd 9 days ago

Great work! I'm usually bored too, sometimes I find something to study or try to implement known tech, but only give up when I feel like it's too hard for me or it's too much work haha, this motivates me a bit.

layer8 9 days ago

We need more bored people.

  • notfed 9 days ago

    I desperately wish to be bored. (Context: I have a job)

    • w10-1 9 days ago

      trade you?

      • sameerds 8 days ago

        I am sure this was tongue-in-cheek, but I read the GP as "I desperately wish the need for money didn't drive what I did with my time."

        • notfed 8 days ago

          Yes, exactly!

      • miningape 9 days ago

        The grass is always greener

  • amelius 9 days ago

    We need new ideas in OS/kernel development, not reiterations of the same old (boring) ideas ...

    (imho)

  • swiftcoder 9 days ago

    Quick, someone light the UBI signal

    • jart 9 days ago

      That's called living off interest, dividends, and stock growth.

      • swiftcoder 9 days ago

        For folks who worked in tech/finance/etc, yeah. There might be something to be said for distributing access to enough free time to do art, a little more widely...

        • jart 8 days ago

          The stock market is open to all. Everyone has the opportunity to participate. It does not discriminate. All you need is $184k to make the same average income off the S&P 500 for life as you would collect on government disability. A frugal median income individual could save that in ten years. If someone is not capable of pulling that off, then maybe they should be on disability. You don't even need investments to live without employment. If you are likable and people want to be around you, then they will let you sleep on their couches. It isn't difficult to follow your dreams.

          • swiftcoder 8 days ago

            Given that ~40% of Americans would be hard put to cover a $400 emergency expense[1], I think you'll find that the set of people who have the opportunity to amass $184,000 in savings is already a pretty rarified group.

            [1]: https://fortune.com/2023/05/23/inflation-economy-consumer-fi...

            • jart 8 days ago

              Which is because they put more value in spending their money than becoming a NEET.

              They absolutely have the opportunity to change if they want to change.

              • swiftcoder 8 days ago

                If you ignore all externalities, sure. Having to take on student debt, having medical expenses, having children early... there are a myriad of reasons why one may become trapped by the economic system

                • jart 7 days ago

                  Only death entraps us, and even that is open to debate by some.

                  One of the reasons why we respect artists is because we get what they had to give up to do it.

ktbwrestler 9 days ago

Great job, something like this is also a really great way to get your foot in the door with a job when the time comes.

I like that you have the site in both Spanish and English!

  • Jotalea 9 days ago

    Yeah, I'm a native Spanish speaker, and since I'm planning to share this project in Hispanic communities too, it would be bad to not have my own language in it.

    Though following that logic, I should also make my OS in Spanish too... I guess I could add some kind of translation dictionary, I'm not sure. I guess I'll do it in the future.

    • thereticent 9 days ago

      I'm impressed with your dedication and also amazed that I ran into this on HN. My 9-year-old just showed me your Geometry Dash remake in Scratch. You're like a legend to him and his friends!

      • Jotalea 9 days ago

        Whoa really?? I wonder where did he find it.. it's been a while since I've last worked on it. I think it was in 2023.. and I've never showed it too much, maybe less than 50 views?

        > You're like a legend to him and his friends!

        :D

caspper69 9 days ago

The page isn't in English, but Google helpfully translated it for me.

Without source, and only those commands available, it's kind of difficult to see what you've implemented and how far you progressed.

Did you do anything with the MMU yet? Any hardware detection? Do you ever jump to a user space context?

Do you have any specific design goals you want to explore, or was this just a learning exercise?

Like Groundhog Day, I have been doing this over and over and over for the last 25 years.

So many toy kernels, so many ideas and tests and watching A's and B's and C's and D's flash on the screen. Memory dumps. Writing executable loaders. Poring over the Intel/AMD manuals (and later AARCH64). ACPI (ugh). Trying to implement the techniques from the latest papers (usually in an effort to maximize the performance of a microkernel-ish design).

It's all great fun of course, so I'm not lamenting that, but when you start to get to the userspace infrastructure, unless you're YOLO'ing it with libc and POSIX compatibility, everything is so opinionated, and there's SO MUCH TO BUILD, I just kind of peter out.

It's been about 18 months or so since I last had the itch, but it's inevitable that I'll do it all over again.

Best of luck!

  • gazook89 9 days ago

    Immediately after the opening header there is a button to switch to English, fyi.

  • Jotalea 9 days ago

    There actually is a Switch to English button at the top of the screen, which of course translates the whole website to English, and adds more details that I know English-speaking people would be interested on (for example, the source code), while Spanish-speakers won't. And even if they are, they have a note saying "for more details, check the English version of the site"; and I'm sure that if they can understand those details, they can also understand English.

    > Did you do anything with the MMU yet? Any hardware detection?

    No, not yet. I still have to learn that

    > Do you ever jump to a user space context?

    I mean, I haven't put any restrictions, just as I haven't put many features that I would consider user space.

    > Do you have any specific design goals you want to explore, or was this just a learning exercise?

    I saw a video about TempleOS, and got motivated to make my own OS from scratch. Of course, TOS is a ~15 years-in-work project, while mine has been just a couple days/weeks, these are very far from each other.

    I guess my final goal with it would be to get Minecraft running? I don't know, getting a Java program (or Java itself) to run on an OS from scratch sounds too complicated for me.

    My current goal is to get Bad Apple on ASCII to show up on this, but to do that I need to save a lot of variables, one for each frame, and there being ~6000 frames, it would take a huge lot more than 512 bytes, so I would need to get jumps in memory to work so I can have these many variables set, which is what I would be working on now, if I hadn't other stuff to do.

    > Best of luck!

    Thanks :)

    • caspper69 9 days ago

      Yeah, I didn't notice the site switch to English link; If I had seen it, I might have also seen the source, lol. Sorry about that.

      Terry Davis, the author of TempleOS, was fairly well known online. He had a lot of struggles psychologically, and met an unfortunate end a few years ago. It's an interesting case, but I honestly wouldn't take too much from the project. He was a gifted developer, but he did things for reasons that were decidedly non-technical.

      For building up your knowledge (you can't only read the reference manuals, after all), there's a ton of resources online, but a particularly good one is the OSDev wiki: https://wiki.osdev.org/Expanded_Main_Page. I can't speak for it as it exists today because I've been out of the game for too long, but it was maintained by helpful folks. I didn't check to see if the forums are still up, but there used to be a wealth of information in them back in the day too.

      As a note, relying on BIOS is ok, but the whole write a bootsector in 512 bytes to switch to 386 protected mode, to then switch to long mode (64-bit) is kind of outdated (the modern computer boot process is handled by the UEFI firmware, and by the time your OS binary is loaded, the CPU is already in long mode with paging enabled and setup with a flat linear mapping of physical memory).

      Not to say that the method/approach is worthless (it's all learning), it's just that you spend an awful lot of time doing things in the whole mode-switching dance that are basically tossed in the bin almost immediately, and most of it has nothing at all to do with OS development. UEFI at least allows you to start on the real meat & potatoes without spinning your wheels on code that isn't going to stick around very long.

      • Jotalea 9 days ago

        Thanks for the information :)

        I just analyzed and did what I read online and it seemed to work.

        To be honest, I don't fully understand how these things work, but I'm here to learn ;)

    • 4ggr0 9 days ago

      why are spanish-speaking people not interested in source-code?

      what about bilingual people, do they have an average amount of interest for the source-code?

      • Jotalea 9 days ago

        > why are spanish-speaking people not interested in source-code?

        Most of the Spanish-speakers that I know, don't have advanced knowledge on technology (on things like Assembly, or the difference between x86 and x86_64), and those who do, it's granted that they know English, because we are told in school that "to be smart and succeed, you need to know how to speak English".

p0w3n3d 9 days ago

Le agradezco a Duolingo, no necesité cambiar el idioma a inglés cuando entré a tu sitio web.

  • Timwi 8 days ago

    La hispana sonas tiel simile al Esperanto, sed tamen, mi komprenas preskaŭ nenion mdr

  • Jotalea 9 days ago

    Jajaja, yo llevo estudiando inglés desde los 3 años. No me arrepiento.

  • mportela 9 days ago

    Great, now go back to study before Duolingo kidnaps your family

ranger_danger 9 days ago

How can we download only the source code?

  • Jotalea 9 days ago

    The source code comes in a bundle that includes a compiler, an emulator, and some extra tools. While I don't see an advantage on downloading the source code alone, I won't deny it.

    Just note that there are three different "branches":

    - stable: This is the one being distributed in the website

    - neofetch: This one exists because I couldn't get the ASCII art to fit within 512 bytes along with the rest of features

    - multistage (untested): Here I'm trying to work with jumps in memory to handle different commands and features (and include them all in one release). I read online that I can compile them separately and then merge the binaries to get jumps to work. But I haven't finished it, and it probably won't compile as it is right now.

    That said, here is the source code for all of them: https://quickshare.samsungcloud.com/wB9kfq1umxW2

    edit: fixed missing newlines

    • codecraze 9 days ago

      Congratulations on your project!

      Out of curiosity why don’t you put the source code on github?

      • Jotalea 9 days ago

        I want to clean up the environment I used before uploading it to GitHub; that has taken me like 4 days and still going. Yes, I've spent more time configuring the environment and documenting than actually programming. And the worst part? It's not even finished!

iwontberude 9 days ago

Congratulations are in store but of course you are a special kind of person to escape boredom this way. It’s a gift and a curse. Good luck!

gtirloni 9 days ago

Nice accomplishment. I usually do things because I'm excited about something :)

KTibow 9 days ago

fyi, you can automatically detect the user's language and switch to English when applicable by using `navigator.language`...

...or even better, don't use JS (which doesn't work on older browsers and prevents some optimizations), and read the Accept-Language header instead

  • account42 9 days ago

    And please do NOT do what gogle does and pretend that certain values in the Accept-Language header don't indicate a user preference and you should guess based on the IP address instead.

tomhee 8 days ago

Nice job! Just started my own too.

asdf0987 9 days ago

despite saying it's open source, there's no link to read source code e.g github.

  • ranger_danger 9 days ago

    why do you think that is a requirement to being called open source?

    • freedomben 9 days ago

      I don't think it's unreasonable to expect that a project claiming to be "open source" provide the source code in some form. It needn't be on github (GP merely sites Github as an example), but there should at least be a link of some kind, whether a zip file or a git remote or something. It's not a requirement, but it is something that most people (reasonably IMHO) expect.

      • Jotalea 9 days ago

        Probably it was hidden too deep (switch to English mode, scroll down to Downloads section and download the Dev Kit), I'll try to fix that tomorrow, or whenever I can.

      • ranger_danger 9 days ago

        but there is a link

        >Dev Kit includes distribution of a cut down QEMU x86_64 emulator, ASM compiler and source code, along with extra utilities. These are packaged with a win32 platform in mind.

    • martzy13 9 days ago

      I don’t know that GitHub per se would be a requirement, But when I think open source - I usually think about being able to browse the code in some type of repository, in a human readable format.

      I like to browse a codebase in some way that I don’t have to download and unzip an unknown set of files.

      • MonkeyClub 9 days ago

        > I don’t know that GitHub per se would be a requirement

        Indeed.

        Although providing a browsable source tree is convenient, we shouldn't default that on Microsoft's private platform (which, after all, monetizes the code stored there by using it for LLM training).

        If a project is free software or open source, Codeberg.org is an excellent solution, while there exists a whole host of other web git hosts as well.

        Let's take advantage of the field's diversity, lest it narrows down on us abruptly.

      • ranger_danger 9 days ago

        I understand you prefer to be able to browse the code online, and that does seem to be largely the norm with most projects, but from a technical/legal perspective, my understanding is that the only actual requirement is that source code is provided if requested, they don't even have to post it anywhere on the Internet in advance. It could just have been emailed to you or something. But people usually put a link up somewhere just to make it easier.

        • nom 9 days ago

          Yeah, open source never meant you must provide an online repository in perpetuity for everyone.

          It means you can get the code if you want it. If you have to pay for postage so someone can send you a floppy with the source code, it's still open source. It's open to you.

          • account42 9 days ago

            More importantly it means once you have the code you can then give it to others both with and without modifications.

      • seanw444 9 days ago

        Open source != provided source control repository

        • Karellen 9 days ago

          I think that's debatable. Many open source licenses have a definition of accessible source code that is similar to:

          > The "source code" for a work means the preferred form of the work for making modifications to it.

          Certainly, in the past "a tarball of the source for whatever version you have" was absolutely considered sufficient for that. But these days the features provided by source control systems, such as "annotate"(/"blame"), "bisect", etc... could very well be argued to have raised the baseline for what "the preferred form of the work for making modifications to it" should mean.

krylon 9 days ago

Respect! This is really cool!

anandnair 9 days ago

Website is not working?

  • Jotalea 9 days ago

    Uhh, it is?

    The server I use apparently blocks specific devices or ISPs, it has happened to me a couple times and I haven't found a solution other than using a VPN or a different device on a different network.

    The tools they give me don't cover this device blocking, so I guess that either they manage it or it is managed automatically.

    I will switch to self hosting once I get an actual server.

TZubiri 9 days ago

Copado, cuales son sus dependencias?

  • Jotalea 9 days ago

    Para compilar teniendo un host windows (lo odio pero no tengo otra opción) están todas las dependencias incluidas en el Dev Kit.

    Ahora, si estás en Linux me imagino que nomás necesitas nasm (el compilador) y build tools. Igual no estoy seguro..

    • TZubiri 9 days ago

      Ah pero eso para compilar, osea que no hay dependencias de runtime tipo otro linux. Es todo assembly.

revskill 8 days ago

Another medium blog so i could not access.

nikolay 9 days ago

[flagged]

  • k1kingy 9 days ago

    I have 2 young kids, some of the best advice I've been given is that it's a good thing if your kids are occasionally bored.

    Why? Because it forces them to problem solve and on most occasions they get pretty creative. I'll often get home from work and there will be a massive blanket fort through the living room, or some kind of obstacle course in the front yard.

    Being bored is not a bad thing!

    I know kids who have lived on iPads/TV/other devices from a young age, and they don't understand the concept of being bored and watching them try to grasp the concept of 'make believe' is downright painful.

    And don't get me started on not being allowed to feel proud! Who hurt you?

  • fjjjrjj 9 days ago

    Feelings come and go. They aren't who you are, just a part of you.

    You are welcome for 3 years of therapy in two sentences.

    OP, way to funnel your energy into your project. Nice work!

  • miningape 9 days ago

    As long as it doesn't push into apathy and arrogance I don't see an issue with feeling proud or being motivated by boredom

pshirshov 9 days ago

It's not actually an OS, it's more like a simple stub from osdev, a simple program running on bare metal.

  • noone_youknow 9 days ago

    Everyone has to start somewhere, and many who try don’t even get this far (I’m not sure I would have at OP’s age either).

  • Karellen 9 days ago

    Well, the earliest version of the code that would morph first into a terminal emulator, and eventually become Linux "was written to use one thread to write the letter A to the screen. The other thread wrote the letter B."¹ Who knows what direction this OS will evolve along?

    ¹ Linus Torvalds, Just for Fun, pp.63

  • veltas 9 days ago

    Got to agree, not to knock OP for sharing this because this is a fun hobby project, but to most people this doesn't meet even loose definitions of OS.

    I'd say this is a bootable environment or something.

    To be an OS it would have to have some way to run programs as well.

    • Jotalea 9 days ago

      To me, an OS is a piece of software that can boot in a computer without requiring anything from another OS as host, and allows running programs bundled with the OS (like Paint on windows 1.1), and if supported, 3rd party programs.

      • veltas 7 days ago

        Yes, and a lot of people feel that way, but that's 'booting', or 'bootstrap'. A program like that is what I might call a bootable application. It's just not what an OS is. "Operating System" has quite a clear meaning, being software that assists the general operation of the computer. If it's not capable of running general programs then it's not an Operating System.

not_your_mentat 9 days ago

Isn't disclosing your age a HR violation? ;)

  • Jotalea 9 days ago

    No? Or at least not as far as I know.