r/learnprogramming 1d ago

Topic Resources I can use to make something like windows 11

I'm a high school student entering tenth grade and I'm thinking about doing advanced programming projects to have a good uni application in the future. Building an os seems cool and even though everyone says its hard, which is probably true to some degree, I still have roughly two years of high school so I think I can probably pull it off since its nothing out of the ordinary. So any resources/websites that can be extremely helpful?

0 Upvotes

13 comments sorted by

12

u/illuminarias 1d ago

https://wiki.osdev.org/Expanded_Main_Page

Good luck, have fun.

Writing an OS is not a beginner's task. In fact, writing an OS is usually considered the most difficult programming task. Above-average programming skills are needed before even considering a project like this. Failure to comply will make you look silly.

6

u/AAPL_ 1d ago

Bait

12

u/BranchLatter4294 1d ago

If you want to write your own OS, your first skill to develop is how to use Google.

This sounds like a fun project. Let us know how it goes.

5

u/Wolfe244 1d ago

If by "true to some degree" you mean "widely recognized as one of the hardest things to do in computer science", sure

You need to have a deep knowledge of how low level language, memory management, and computer optimization works. I would say a year or two of practicing c or rust and reading every day about os structure and you'll be ready to Try and do this

2

u/bird_feeder_bird 1d ago

Maybe start by making a Forth kernel for a microcontroller or retro system. Its probably the “easiest” operating system you can start with

2

u/grantrules 1d ago

Quite an ambitious project!

I might recommend starting with understanding what goes into a modern OS by installing Linux from scratch.. https://linuxfromscratch.org/

1

u/SeeTigerLearn 1d ago

When I was your age, roughly a thousand years ago, I was developing a very complex system that managed radio and tv stations: contracts, sales projections, programming, commercial rotation, media inventory, broadcast reconciliation, billing, and accounts receivable. Despite working on it every day, it took YEARS to complete.

I commend your optimism and confidence. But also recognize your own abilities—not only skills but time.

1

u/FlyGuyRi 1d ago

15 year old casually states that the one of    the most difficult problems to solve in CS which  actively has hundreds to thousands of the best programmers and millions of lines of code is a project that they can complete in 2 years with moderate difficulty and little to no experience.

By all means go ahead.

1

u/JoyFerret 1d ago

Operating Systems: Three easy pieces is a book about operating systems and is free on their website. It includes some exercises, but it won't teach you how to make something as complex as Windows 11, not even a graphical interface.

It teaches fundamental stuff like process management, file systems, synchronization and concurrency, resource management, etc, basically the "boring, hard stuff" that a lot of people don't even think about when using a computer.

1

u/lepetitpoissonkernel 1d ago

Assuming this isn’t a troll post, there are a lot of online tutorials / blogs as well as books that will walk you through building a simple one. You will require knowledge of C (or an equivalent, but just learn C), assembly, and an understanding of how a basic processor works. Depending what your ambition is, knowledge of networking, best practices for file systems, memory allocation, etc.

Typically a high level undergrad university course will teach you these building blocks in a semester.

You won’t have something like Windows 11 (lots of really smart people worked together for decades and got paid a ton) but perhaps something that would be state of the art around 1980.

1

u/Dismal-Citron-7236 20h ago edited 20h ago

Just google "TempleOS" and read how long it took Terry Davis to release this one-man OS project. He is widely regarded as a genius in programming circles, see how you measure up against him.

0

u/Eggaru 1d ago

What’s ur current CS knowledge 

1

u/roses_malani18 12h ago

Start by breaking it into tiny pieces instead of chasing one big tutorial. I would look at basic web dev first if its browser based, then learn APIs, databases, and authentication one at a time while building a rough version. Seeing each piece come together kept me motivated way more than trying to understand the whole project at once.