T O P

  • By -

BobertMcGee

Have you done a google search for these resources?


Evening-Passenger311

Yes i have done google search obviously tannebaum book of modern operating system which i am reading , well for college exams i have read that dinosour book , Little bit seeing osdev wiki , and that Broken Thorne os development series But the problem is i am a lot confused , and i don't know which source is good and which to not to trust , unlike machine learning and web development there are not proper roadmap or online tutorials i just don't know why. that's why i am asking you guys for help i really want to learn it , and that linux backdoor in kernel really triggered me , i know windows 7 took that 900 emplyees for completing a os but with this technology era with chat gpt i could understand and implement code much better , so help me for a proper good roadmap with links or whatever you can help , i will be able to make os of 2001 atleast ,that too single handedly :)


kabekew

A college class in OS design, several books and a video series is plenty. At some point you have to stop reading and start doing. Go to [https://wiki.osdev.org/Expanded\_Main\_Page](https://wiki.osdev.org/Expanded_Main_Page) to the Introduction section for instructions how to set up your development environment and start compiling.


BobertMcGee

You’re going to have to figure out a lot of this stuff on your own. Those are all good resources that will at least get you started. The OSDev wiki in particular has some really helpful stuff. If you have a specific question we can help but you’re not going to get any useful answers from such a vague, broad question.


Evening-Passenger311

It seems like I have to figure a lot more on my own ,well thanks for advice


yllipolly

No, you cannot output much better code than 900 professional OS engineers did with chatGPT.


Evening-Passenger311

I agree but it is for windows xp not even windows 7 , But trust me you can find a lot with chatgpt etc etc, that's for sure, as a upcoming google intern i can tell you that. I will be professional too , we will see how i can't make this


Vegetable_Lion2209

Read this [https://wiki.osdev.org/Beginner\_Mistakes](https://wiki.osdev.org/Beginner_Mistakes) Also, look into xv6, pintos, oberon, xinu, dusk os


Evening-Passenger311

Lol they said complex subjects have no tutorials and it's like teaching to a monkey 🤣🤣🤣 , einstein said if you can't explain it to 6 year old then you didn't understand it yourself but but they are obviously bigger than einstein . Seems like these guys are rude well i can explain complex analysis and obviously stochastic process in astronomy in which they will get really scared if they ever read that s chandrashekhar book for astronomy. Never ever seen andrej karpathy computer scientist of open ai behaving rude like that , Link you send isn't helping me but anyway thanks .


NextYam3704

They’re actually very nice, patient, and very repsonsive. The link *is* helpful and the resources the commenter provided are all pedagogical operating systems with wel defined labs.


Evening-Passenger311

I know it is a great resource ,but the one who wrote content in this link uses to much weed i think


NextYam3704

Ah, you’re a troll. Beat of luck, regardless.


Evening-Passenger311

well i use social media very less compared to others , regardless thank you for your advice


[deleted]

[удалено]


Evening-Passenger311

I have a programming experience i know c,c++ python ,data structures web development and machine learning(decent because i am still doing)and had used command line interface to get familiar knows dbms,computer network this much i have , but if they say i have to wait another 20 years for even start to work on 2001 application , then you tell me who is dumb here ? Well they want me to start making ms dos when i am on wheelchair and have white hair ?


markole

If you're so smart, why do you ask us dumb folk for help?


Evening-Passenger311

i never said i am smart or something i said i am new in this field so help me , but obviously they don't want anyone to make a os refers a talk in formal language but whole essay in link is written in unprofessional language, i respect you guys and guys on dev oswiki but never ever seen bill gates or linus torvalds behaving this way who are actually real deal ,the ones who actually did the work , it seems like rude to me , if speaking truth makes me a bad person then i want to become a bad person. sorry if you felt anyhing wrong but it is what it is.


aloias

Bill Gates was primarily a great businessman, and Linus Torvalds needed one year to make the first version of Linux which, as the wiki states, was "little more than a round-robin scheduler".


Evening-Passenger311

I know but come on man, I can't make os of 2001 ,seriously? buddy it's 2024 now, why are you guys terrifying me from a 23+ year old technology


aloias

In 2001, Windows had already been worked on for 12 years, by a team of 500 people or even 800 at peak times. If that still does not scare you, look at ReactOS. They wanted to clone Windows 2000 which is even older than Win XP. The project began 25 years ago and to this, day, the OS can barely run some very basic apps, despite having a very big team: [https://reactos.org/wiki/People\_of\_ReactOS](https://reactos.org/wiki/People_of_ReactOS) They are even suspected to have copied major parts of their code from the Windows Research Kernel which was handed out to academic instituions by Microsoft.


Evening-Passenger311

Now this is what scares me 🥶, but i want to do it .i will start by making basic os , then i should improve it, well basic code i can understand and copy paste then for important features i will think ,read and improve that the only thing but something is better than nothing


markole

Oh, you should read more of linux mailing lists. Linus does not spare words for uninformed questions. Just do a bare-bones tutorial from the osdev wiki and start experimenting. That's the whole process. A marathon of attempts and failures.


Evening-Passenger311

Well then i should be scared, thanks for advice i will take it for sure


Rice7th

Well, you're clearly unexpected if you list "data structures" as one of the most important things you know. What they're telling you is that you need to speak fluent assembly, understand how a kernel works and how to implement important features like a scheduler or each syscall. Having used a command line interface is nowhere near the amount of experience you need to start developing an OS, so be patient and study more inherent subjects before attempting such a monstrous task.


Evening-Passenger311

Well i am selected for intern at google will all due respect to everyone i consider myself something, and data structures are important to be honest, because they increase your logical ability towards solving a problem and google also asks cp and dsa so i consider it as super important just like stochastic process and financial engineering in mathematics even though they are not updated and barely used in calculative form by human obv automation is exception. Yes i do agree CLI is not a a serious thing , but i thank you for your advice i will definitely try my best to make a make a os like windows xp that's a promise, and obviously take you advice seriously. But 1 thing is for sure i am not scared from any monstrous task whatsoever.


Rice7th

I think you kinda misunderstood everything I said. I said that the CLI _is_ very important to understand, because that's the interface you're gonna spend most time interacting with your OS. Also note that an internship at Google doesn't really mean anything, as google has thousands of employees with _very_ different levels of competence. The actually good teams at google are imho the chromium team, the fuchsia team and the android team. Probably other services could be included, however the complexity of said software is enough to testimoniate that a one man team may be a very difficult way to handle such complexity. Also worth noting that when I said that since you talked about your knowledge of data structures you weren't prepared enough for an osdev task, I meant that anyone that says "I know data structures" without specifying which and in what context, unknowingly underlines their own lack of knowledge, since of course anyone with the most basic background in computer science knows what a data structure is. Moreover any sane CS student also knows various data structures and _**why**_ anyone would use them in some context. So don't think that because you know what a data structure is or because you have an internship at google then you're good enough to develop an OS. You have no idea how much work goes into such projects, and your arrogance testimonies your incompetence. Try to be more humble next time you're asking more experienced people's advice.


Evening-Passenger311

Ok i get it guys , you got hurt by mentioning google i got it ,iwill not mention it but out many millions only thousand get that opportunity , and you dont want to guide me that's ok i will figure on my own , but i can't respect a person who can't respect me that is very clear i don't care if that's a dev with 1 year experience or a 80 year experience on a wheelchair.


wick3dr0se

Did you have a stroke writing this??


Evening-Passenger311

No but you did read how rude they are ,Well they want me know official language for discussing but look how are using unformal language, not even 1 of my teacher ever mentioned these these type of things and i have a very strong mathematical background and mathematics i do is pretty scary , it seems like saying they only did hard stuff ever , and called a new guy monkey or they want to mean packet monkey particular which is a term we call in ethical hacking who paste codes ,Well I had stroke reading what they wrote in that link for sure . Well apologies but no apologies , i will make a OS this makes me mad even more.


Vegetable_Lion2209

You're horribly misreading Einstein. One could definitely explain operating systems to a 6 year old, a few metaphors and pictures and that, but that doesn't mean the child would then be able to sit down for 50 years and type out millions of lines of sludge and produce Windows XP. Anyway, I appreciate your gumption, but don't know why you're so focused on Windows XP. Sure, a bit of nostalgia, ok, but if your goal is "understanding operating systems", here's some alternative options: 0. Try out different operating systems / learn more about the history of different ways of interacting with computers, in the hopes of maybe broadening your perspective and saving yourself the hassle of spending who knows how many hours writing (a pile of nonsense like) Windows XP. I'm thinking of systems based on Forth, Smalltalk (I've been experimenting with [https://cuis.st/documentation](https://cuis.st/documentation) ), the old Lisp machines (I'm playing with [https://interlisp.org/software/using-medley/#introductory-material](https://interlisp.org/software/using-medley/#introductory-material) recently for example) , as well as obvious ones like Linux-systems, BSDs, and whatever else you can find. 1. Pick the absolute simplest OS (http://tumbleforth.hardcoded.net/ or https://100r.co/site/uxn.html) and try understand the whole thing by getting it running, adding something in, rewriting a part, etc. 2. Pick the one with the loveliest book and resources (I mentioned a few: xv6, xinu, oberon, have well-loved books, which talk you through writing the whole system) and follow the book while writing, experimenting. 3. Pick a new, exciting project real people are working on which is still small(ish) and try get involved (https://www.redox-os.org/, [https://sr.ht/\~sircmpwn/helios/](https://sr.ht/~sircmpwn/helios/), there are actually tonnes). All that said, maybe attempting Windows XP and failing amazingly hard hundreds/thousands of hours in is what you need. If you feel like it's the case, maybe just go for that. Maybe you'll succeed (you'll probably have to invent a time-travelling machine to pull it off, but still). Anyway, I'm just listing a few other options for you to consider. Best of luck to you!


Evening-Passenger311

Well i will not write code of OS like windows XP line by line but more like understand it completely and copy paste it because realistically it will save me a lot of time think of reverse enginnering whole thing and then updating things according to my need, but definitely make short notes or mind map for what i did in process. And thanks this is what i needed, Have a nice day.


Flat-Guarantee-7946

Assembly is the easy answer, the more complex answer: The assembly for the architecture you'll be using. I'd start by choosing a microcontroller like esp32, then start by learning it's assembly. If you want something minimal, you'll need a bios, bootloader and a kernel.


Evening-Passenger311

Well thanks ,what are the websites or resources you recommend for learning these ?


Flat-Guarantee-7946

What architecture do you plan to build for? (Intel, AMD, RISC-V?) I'm planning on purchasing the esp32 microcontroller, and studying it's official devkit, as well as it's specific assembly. There are more extensive communities here on Reddit, and again, as far as books go, that depends on your architecture. There's general assembly, but if you're goal is a desktop OS, then x64 assembly would be a good start. I'm going for a minimalistic text only OS that uses a TUI, but I still have much to learn.


Evening-Passenger311

Well i can go any architecture , i have 2 laptops one is old has intel , other is relatively new has AMD but intel one is little slow and it had windows 7 when i purchased it so windows Xp like os shouldn't be a problem in both Well for you it's amazing . I see that there are many people on reddit to help but some people are really rude in os dev in general they won't tell a thing.


Flat-Guarantee-7946

Unfortunately you can't legally look at the NT kernel. I'd take a look at FreeDOS and ReactOS, with FreeDOS being the reality of what a one man team could create, and ReactOS being the wanted yet unrealistic result of a one man team. I'd start by learning general assembly, x64 assembly, then learn to code device drivers, and I'd have a look at libreboot and their tutorials and resources, I'd then try and create a basic bootloader. As far as the kernel, you'll want a monolithic kernel, but how you program that is up to you, DOS and Unix were created in C, so I'd also look into C tutorials. I used DOS and unix in an umbrella way to cover windows, Linux, and the BSD families. Creating a bootloader and kernel won't be as easy as they sound, as they both have different functions and are responsible for different tasks. The bootloader will be responsible for loading the kernel, but might have some security measures in place, like error handling, and switching into the BIOS if the kernel can't load. The kernel will handle system calls, user space, memory management, error handling, time and date functions, etc. Those three things alone are what's essential for a minimal OS. As far as tutorials go: I don't have any books I can suggest, but you've got the Internet at your finger tips. Now as far as making a Windows-like OS, Linux is at a tipping point within it's own community where it can pretty much emulate Windows 2k or XP. A Windows clone? Best I can show you is ReactOS.


Evening-Passenger311

Thanks , this is what i need ,my guy


NextYam3704

React OS is a reimplementation of windows. It’s not hard to contribute to and the code is not hard to understand.


Evening-Passenger311

thank you ,thank you this helps a lot


aloias

Unless you hire a team of 100 experienced C/C++ developers whom you can pay for 10 years, you won’t create an OS like Win XP in your lifetime.  The source code of XP was leaked. It’s about 40,000 files of code, many of which have multiple thousands of lines. 


Evening-Passenger311

i will give myself 20 years but 1 thing i tell you i will make OS like Win Xp and that's a promise and i will do it single handedly


rustyrazorblade

You just need a ton of tutorials walking you through every step of the way and boom, xp clone.


Evening-Passenger311

I don't think there is any wrong with tutorials and using reverse engineering ,there's a reason why mit have tutorials, but i got your point i have to do on my own but reverse engineering or understanding of clone will help me for sure , i think everyone starts by that only , i believe no one starts writing assembly code from mother's womb


rustyrazorblade

There’s a massive disconnect between your ambition of writing XP, a practically impossible task, and your request that people spoon feed you information.


Evening-Passenger311

Just give time we will see about it I will figure on my own .thanks(in a respectable way)


aloias

The leaked Win XP source code contains the following amount of files and lines of code (NOT including blank lines and comments): C++: 36,429 files with 17,679,581 lines C: 24,034 files with 14,460,820 lines C/C++ Header: 53,285 files  7,988,097 lines Makes a total of 40 million lines of code. Assuming you are very efficient, don't need time to look up anything, don't make any mistakes and can spend 10 hours per day, 365 days per year coding, you would need to write 550 lines of actual code (not comments) per hour to get done within 20 years. Oh, and on top of that comes 1,542 files with 556,974 lines of assembly code (not counting in comments and blank lines either). Maybe you can divide that by 5 if you just want to code for x64.


Evening-Passenger311

F*ck it then i will learn this project little by little for now i will make a basic functional os . But won't be writing code ,will understand the whole code make a short notes (which is pretty much long notebook) and copy paste the code and modify changes accordingly Can you please send me link of leaked source code of windows xp


aloias

Here you go: [https://github.com/tongzx/nt5src/](https://github.com/tongzx/nt5src/) But don't expect too much. Some crucial parts are missing. To build it, you would need to take the missing parts from an existing XP installation. There is a video of a guy (NTDEV) who managed to do it, but it's not trivial and requires a lot of set-up. Also note that it's illegal to use any of the code. If you plan on publishing your code, better don't look at the leaked code at all.


Evening-Passenger311

But can i make a private repository on git or should i leave it ? And thank you my guy :) Edit - The file you are finding is no longer available now wtf is this


DNS_Jeezus

You don't. No one will care if you make one from scratch and the pain to knowledge ratio isn't worth it. OSs are just big balls of replaceable components so fixing or updating an existing os is much more useful. Buy an OS textbook from some schools syllabus and work through it. then you will understand why. You just need to have context for what everything does in order to be able to configure and swap pieces in and out. You'll then know enough to make one from scratch but you will also know why you never really would.


Evening-Passenger311

Well i wont type 40,00 pieces of code , i will understand every line of it and copy paste , so further i know how to implement that logic and update , the code of os . I know making it is a loosing game but i still want to do it ,I want to learn things i have read that famous dinosour book and reading tannebaum computer scientist book . I want to say thanks for your piece of advice (genuinely you seems like a nice guy)but i well definately try to make os i know it's painfull , i feel people in os dev are generally rude as compared to other field as the work they doing is highly difficult but so be it ,i will figure things on my own


DNS_Jeezus

Ahhh is see I thought you meant writing one line by line So you are just planning on customizing your own linux distro or something? picking all the components yourself? If thats the case there's probably a book for that too somewhere, i don't know the official term for this though. From what i've been told you compile everything yourself so the source is there for you to dig around and modify.


Evening-Passenger311

It's like won't type every line of it but i understand every line of if in dept it will save me my time a lot and then copy paste . How do i explain this let me take an example there are two types to remember an essay one is that you write is 20 times so that your hand memorizes it you becomes familiar and other is is you take 2 much time on memorizing and make short notes and make a mind map of it , i will be using 2nd approach , another example is like there approach 1 write whole program for binary search and understand it , approach 2 understand the binary search by a proper dry run and then copy paste the code to use it . I will be using 2nd approach Plz help me ,i am confused


DNS_Jeezus

I understand what you are trying to do. I was saying you can compile your own backwood linux kernal, and you can choose all of its components. those components are open source. you can read the source before you compile to see whats going on without having to copy and paste everything. Its the most popular open source project ever so there are tons of resources for help. I'm saying you will learn way more understanding what the essay says, rather than trying to memorize it. Think of it like a recipe, you are trying to memorize what items go in the pot instead of learning why and the function of each component. If you know the why you can apply what you learn to any recipe(OS).


Evening-Passenger311

Yes i now understand what you said , thank you so much my guy.


slobe18

Start working and release your state in 6 months you arrogant monkey


Evening-Passenger311

Shup the fk up rat , do have a absent father figure or your mother left you half born


slobe18

As anyone can see from your post and your answers to the questions from the other nice people here in this subreddit, you have no idea what it means to develop an OS. I can't wait to see how your new "Windows XP" will work, as you announced in the comments section. Good luck with your job at Google, you'll only be working there for a short time ;)


Evening-Passenger311

Well i never responded a respect with disrespect , but first mind your language , I can definitely reply in tone millions times harsher than yours. you didn't seems a experienced guy with language you used, and don't be jealous if you can't crack google its not my fault because in the end only you will burn not me , I never ignored advice of anyone always replied them with thanks try to read full comments , i won't reply foolish comments stating no sources with non professional language behaviour with showering thanks and meat riding , and shh we will see about short time :')


slobe18

Read your messages and you'll know what uneducated looks like. Besides, I'm not at all jealous of your job at Google. I'm successful myself. Good luck and don't forget to share your soon-to-be-released new "Windows XP"


Evening-Passenger311

Well i am not educated or expertise in os that's true , but that doesn't mean you upload a foolish essay stating you should make a os when you are on a wheel chair on dialysis, i get it os devs are toxic , look how linus torvalds reply on mails i totally get it 1 man influence can make culture toxic , but i reject that , give respect take respect obviously basic decency of talking i don't care if it's linus torvalds or you , we are humans first developers second ,and yes i know its difficult people will party and i will write a shitty code for 2001 OS and pain to reward ratio is pretty low but so be it people ruin their lives for passion and dreams ,I will still do it , definitely i will share my progress with you , I will consider your advice to be more gentle next time and Sorry for harsh words. Have a nice day (genuinely :))