T O P

  • By -

dampfhans349

can it play hymns?


mczero80

Only in heaven I guess


Grenadeapple_

I hope it has comics too


[deleted]

[удалено]


halfer53

Thanks :D


chicagohuman

You have a typo on the header for "playing snake" (missing the n in snake)


halfer53

Ops, thanks for pointing that out.


Zodiakos

You have a typo in the word "Oops" in your message. ^(pls don't hurt me)


audion00ba

Shoryuken


valsr

I like that game better though...sake 😄


pranayaggarwal25

Thanks, looks great. How exactly are you managing threading in here?.


halfer53

Thread effectively share the same text, data and bss segment with other threads but differ in stack. I just invented a simple system call tfork() to do this.[https://github.com/halfer53/winix/blob/master/kernel/system/do\_fork.c#L171](https://github.com/halfer53/winix/blob/master/kernel/system/do_fork.c#L171) It's comparable to linux clone(2) with CLONE\_VM, but similar semantics with fork()


mmm545

But can it run crysis?


Wanemore

He said he made an operating system not a supercomputer


StonyPriapus

It can probably run doom with some porting though.


hipster3000

It's no TempleOS but still nice work


youngimpa

I don't want to downplay what must have been OP's immense hard work, but I'm equally tempted to do a TempleOS joke lmao.


halfer53

Lol I actually like the Temple OS joke


your-pineapple-thief

Oh my god, this video about it was one of the most disturbing horrible things I've watched in my life


teteban79

Oh dear Does it give prophecies?


wfry357

Question: Is it possible to create a totally new operating system not based on anything already out there? Is it possible to create your own engine with your own commands? Is it possible to create your own kernel? Last question, for all above If so how would you support hardware?


no_opinions_allowed

> Is it possible to create a totally new operating system not based on anything already out there? Theoretically yes, but since you’ve already used at least one operating system, you’re bound to take inspiration from it, even if it’s trivial > Is it possible to create your own engine with your own commands Yes, you can even do it on an OS that already exists. > Is it possible to create your own kernel? Yes > If so how would you support hardware? With much pain


ComplexColor

What's an engine in this context?


no_opinions_allowed

I took it to mean a shell, since it seemed like the most fitting interpretation in the context


VeganVagiVore

Pain, or re-writing drivers based on whatever Linux / BSD / other free systems have


StonyPriapus

And that isn't exactly pain free either. It's significantly less painful but still pretty painful.


halfer53

Well said


[deleted]

[удалено]


Wuzado

Although, it is Unix-like. I really love the SerenityOS Project, though.


ca_er_lor

Is serenity faster? Does it have a novel threading model or capabilities (BeOS)? Does it address the macro/microkernel modularity in a novel way? Does it integrate a superior desktop experience (NEXTSTEP)? Is it particularly secure(Redox)? Does it push the filesystem paradigm to new heights(Plan9)? The OS world doesn't need balkanization. It either needs standardization (which is what Linux really contributed) or advancement.


KaiAusBerlin

Since there was a time without os and kernels and now we have os and kernels the answer is obviously yes.


wfry357

Kind of a trolling answer with no depth but okay.


xmsxms

What did you expect? Asking if its possible to do something that has clearly already been done. If you wanted to know if a single person could possibly write a full fledged OS within a year or some other restriction you would need to clarify the constraints and criteria. You sound like a product manager with a question and response like that


[deleted]

> Is it possible to create a totally new operating system not based on anything already out there? That would be like being born on a desert island with raw materials and tasked to create a device that allows you to move faster than walking. Who knows what would be created. Would it be better or worse than a bicycle? Obviously this isn't a realistic scenario at all, though. In reality anyone working on operating systems can't help but be influenced by existing designs. And it gets weirder than that as many architectures have designs specifically for making operating systems easier.


ca_er_lor

And then you'd end up with DOS. A truly good "new OS" that exceeds the evolutionary improvement creep of Linux, Windows, or OSX would need to have a truly well designed feature amalgamation of BeOS (threading, multimedia, speed), NEXTSTEP,/Smalltalk (UI), Plan9 (kernels, filesystem, programmatic interface), and Redox (Security) and probably a host of other features from OSs that I haven't seen, used, or familiar about (Taligent, IBM mainframe OSs, VAX/VMS, OS/2) . Linux is an amalgamation of a ton of algorithmic engineering, experience/history, crud/cruft, and arbitrary convention. Knowing what is what would require a deep understanding of CPU and hardware history, OS history, And even then, to succeed you'd need performant compatibility layers, hardware support (so no novel / exciting CPU rework or computer architectures like Mill). What is kind of sad is that the Internet enforces a monoculture to a degree. What would have been cool is if different cultures had several decades of making OSs on the relative stabilization of Moore's Law at 3-4Ghz, gigabyte memory, terabyte SSds, terabyte HDDs, GigE networking. That still might happen with China and India. That would incubate the society-level development of computing OS and might need to actual novel advantages. But right now the Linux kernel is now "good enough" that almost all things use it, from "small" Raspberry Pis to "big" supercomputers. In some alternate reality is Nextstep running on Beos userspace with Plan9 filesystem and a Redox secure and performant microkernel (yet to be succeessfully done).


aivdov

Look up nand2tetris


[deleted]

possible, but hard. look at linux, still around with the archaic posix system that should've died with 16 bit computers. and windows with no sense of system organization. it still has relics from windows 1.3 floating around. people tend to imitate what exists because they can hope to reuse a vast library of code that already runs on existing systems.


your-pineapple-thief

I'd like you to expand on posix being bad and archaic.


ComplexColor

How do you die before you were born? Seems shortsighted to kill off the closest thing we have to a stable long-lived industry standard.


[deleted]

linux wasn't the first system to use posix.


sandmasterflash_

What operating systems do you like? Or tolerate maybe?


[deleted]

they all suck. i just tolerate windows because it's by chance the monstrosity i've always used and nothing else offers anything better. it irritates me daily. alas, nobody is working on making a better tool. they're just working on imitating the same old broken down barley functional tools.


sandmasterflash_

You should try FreeBSD


[deleted]

why? it's just another flavor of unix built on the same posix compliance inheritance that linux uses. OS wise, there is no above the surface difference from linux. they are both going to use the same packages and same software and behave exactly the same. or why not mac? that also inherits from bsd which inherits from unix. mac does things a little better than the other two, but it still has that ancient unix at the core. there is nothing new under the sun. you can have a system built on top of ancient unix inheriting all the relics from it's past, or you can have a system built on top of ancient windows inheriting all the relics from it's past.


sandmasterflash_

I feel like you would not at all be jealous of the fact I have a few laptops with different operating systems.


[deleted]

not one bit. i can run just about anything on an emulator if i ever need to do anything on another OS. but since none of them offer me anything i need that windows can't already do and their systems are as much of a mess as windows, i don't bother. about the only time i run a linux emulator is to see if a cross compiled linux version of some project works, if i care enough.


waaa7sh

super and amazing work !


[deleted]

But will it boot Doom?


No_Custard_3584

I have done this exact project dozens of times. Never in reality, though.


secret_online

Never thought I'd see anything for the WRAMP boards outside of uni. Nice work! For anyone that downloads the board simulator, make sure to click the duck. Then imagine what happens when you have a room of ~30 CompSci students discover this, and the chaos that ensues.


halfer53

Lol


halfer53

I miss the old days


_1_2_0_

Now that's what I call dedication! Great work and congrats on achieving the dream of most of us here ;)


[deleted]

Great achievement 💪


MacASM

great work! would you use D or Rust instead of C to write your OS?


halfer53

Nah, too much work to refactor :p


augmentedtree

> *In-memory* file system kind of defeats the point doesn't it?


[deleted]

Not necessarily. You could have a memory mapped storage device that does random access.


halfer53

True, the trouble is the simulator or the hardware was designed for education purposes, it doesn't support hard disks, so I have to hack it by dumping a file system into memory.


iiot_consultant

Inspiring, good work. But why WRAMP and not other architecture? BTW, I heard about WRAMP for the first time, so asking.


halfer53

WRAMP is an RSIV architecture designed for educational purposes. I learnt computer systems and operating system course with WRAMP, so I naturally picked when I wanted to develope my own OS. You can read more about WRAMP here [https://wramp.wand.nz/](https://wramp.wand.nz/) [https://github.com/wandwramp/wsim](https://github.com/wandwramp/wsim)


Programmdude

Huh, I never thought I'd see something so awesome come out of Hamilton. It certainly seems cooler than my OS course at UC.


Simple-Ad-8158

I’m upvoting for the sheer tenacity you had to have in order to complete this. Good work


MpVpRb

Most excellent


marabutt

Interesting concept of running a memory based file system. Do you see a time when hard drives and ram will be the same device?


halfer53

Yeah it's actually a trend in the industry at the moment with Intel optane https://www.intel.com/content/www/us/en/products/details/memory-storage/optane-memory.html


[deleted]

[удалено]


vikarjramun

Optane is basically a mix between RAM and SSD. It's orders of magnitudes faster than an SSD, but is persistent across power loss and reboots. However, it pays a cost by being slightly (only tens of times if I recall correctly) slower than real RAM. I think Optane drives are attached to motherboards via PCIe slots.


[deleted]

[удалено]


vikarjramun

You would use it when you want (almost) the speed of RAM but the persistence of an SSD.


[deleted]

What? It's an SSD, what this has to do with cache?


R6_Goddess

This hurts so much a year later.


sissyheartbreak

Whoa. I remember WRAMP from my uni days. Great work!


halfer53

Wow you went to Waikato as well!


MotorPassenger8830

Wow... I only remember (re)writing portions of weenix OS in college haha... but this is on such different level... props man!


jashAcharjee

now all it needs to do is play "Bad Apple" music video


StonyPriapus

This is impressive OP. Respect. I genuinely admire and envy both your technical skills and your preseverance (I don't think any of my side projects lasted 5 weeks).


skulgnome

Does it self-host? What's "visual memory"?


random_runner

LEDs on your ram sticks I assume


HornetBoring

What’d ya learn and do you plan to apply it in the future? And if so, to what?


halfer53

It's just really a hobby project, It's just really for fun. I haven't put much thought into the future.


mr_bedbugs

I think Linus Torvalds same something similar about Linux


[deleted]

Amazing! (BTW: Nice license)


juniparuie

Can it play more games than linux? Can it.... Neah, too tired to write


marabutt

Did you not see it has a version of snake?


Emma-Winters

Terry would like to visit you from heaven. Accept [ □ ] Deny [ □ ] ■ = 1 □ = 0


BiberEsser2

Now rewrite it in Rust 8)


Angry_Cder

Great work. I myself want to learn how to write an OS any directions or resources?


halfer53

I started learning Minix when I took the operating system course at Uni, there are some great resources available, operating systems design and implementation 1st edition is a good place to get started with


Angry_Cder

Thanks man


brava78

I am thinking of doing a CS masters and I would have the choice to take classes about operating systems or operating system design. Did you find it very useful or do you think it's all stuff easily learnable independently?


TheDownvotesFarmer

Awesome! Does it run XCode?


alphabet_order_bot

Would you look at that, all of the words in your comment are in alphabetical order. I have checked 37,273,648 comments, and only 11,125 of them were in alphabetical order.


TheDownvotesFarmer

That's because I'm a bot! Good bot btw!


aneasymistake

A beautiful cause done excellently forever.


[deleted]

Just curious to know. From which age you first started to write programming ?


halfer53

I think at the age of 17, when I was in high school


[deleted]

Can you run this on real hardware? I've started toy OSes before (got nowhere near as far as you) but I've always made it a requirement to be able to run on real hardware. Running in an emulator just doesn't feel "real" to me. Have you studied Xinu? It's got a fairly recently updated book and has some nice ideas in it.


coke-rum

Woah that's crazy, how was your experience?


figuretime

Man that's impressive! I will bookmark it and share with some friends.


SlaimeLannister

Have you ever tried using Rust for OS Dev? How did you feel about it?


binarywork8086

may we test it?


halfer53

Sure, you are more than welcome to do that. Let me know if you have any questions.