While this video really ain't the greatest when it comes to information, I will say that this video holds particularly sentimental value to me. Almost 10 years ago now, as a 12 year old, I first watched this video, because I was in love with the idea of creating an operating system. This brought me down a rabbit hole that eventually led me to get into programming in C++ and Python from age 13. Now, in 2020, I'm about to graduate with my bachelor's degree in computer science, worked at a massive corporation for a year as an intern and later a junior developer, and am starting my career in software engineering. I guess what I'm trying to say is, thank you for making this video. It really changed my life.
Nice, I too watched this when I was about 11-12, wanted to make an OS, and (independent of this video) I learned C, C#, GameMakerLang, JavaScript, and some x86 Assembly. (at differing times)
"Here's how to create an OS in a few simple steps..." *assembly code starts flying down the screen with no explanation at all* Thanks, real fucking helpful.
The actual title for this video should be "How to take someone else's OS, change some strings in it, and compile it and tell others you have written an OS".
That's not true. I first saw this video in 2010 and only just now was his channel in my recommended feed. I thought it looks familiar so I went back on his videos and here I am again.
All you're doing is renaming MikeOS and writing it to a floppy. Somehow I don't think this is quite the same as actually writing anything even close to an operating system.
Ty Stanfl I think you've completely missed my point. This is an operating system. This video does not, however, show how to make one. It literally just says "download MikeOS, rename it and boom, you've made an operating system!".
Alex Overby But he doesn't explain how any of this code works. It's simply "copy and paste this, trust me, it works!". Also, it seems the only code he's actually showing off is the kernel code - not any other part of the OS. Now, whilst a kernel is pretty fundamental to what an OS does, it's really very far from being a "complete" operating system.
TheSoftwareJunction Maybe something like this: _First of all, developing an operating system is probably one of the most challenging things you can do on a computer (next to killing the final boss in Doom on Nightmare difficulty level). Composing an operating system requires a lot of knowledge about several complex areas within computer science. You need to understand how hardware works, be able to read and write the complex Assembly language, and also a higher level language (like for instance C, C++ or Pascal). Your mind has to be able to wrap itself around abstract theory, and hold a myriad of thoughts. Feel discouraged yet? Don't fear! Because all of these things are also the things that makes OS programming fun and entertaining.........._ wiki.osdev.org/Getting_Started
Making operating systems is arguably the final evolution of a programmer :P, 6 years ago I was writing in Visual Basic - now I'm building my own CPU, Instruction Set, Compiler and a useless operating system to go with it. More people should learn how to do this, it's really rewarding when you get stuff done.
I just recently (03-21-2019) built this following the instructions in the video and ran into a few problems: 1. You have to use NASM version 2.08 and not the latest version of NASM available (currently 2.14). Otherwise you will get a ton of 'label redefined during compilation' errors. 2. There are two files that need to be edited in order for KERNEL.ASM to compile successfully. They are both in the FEATURES directory and contain a reference to MIKEOS_VER and MIKEOS_API_VER that need to be changed to TINKEROS_VER and TINKER_API_VER, respectively. The two broken files are: features\cli.asm (line 345) features\misc.asm (line 13)
'How to make an operating system' More like "How to dowload source code of an assembly based os and configure boot. You could say that title is quite misleading. You should have explained to your viewers what a kernel is and what kind of kernel this os uses, etc.
Well, it's not just source that you can download and then compile. It's more like a template kernel that a programmer can modify and added his or her own code to make an operating system.
+VirtualCoder Also, he skipped the part of copying the bootloader into the bootloader sector, he did it right away without saying how to do it. AND I'M STRUGGLING HOW TO DO IT!
Yes, machine language and assembly languages are harder than the other programming language that we have today (Java, c, c++ etc). But if you want to do the same exact project that is shown in the video, it wouldn't be hard as you have a reference but i suggest that you understand how it work rather than following a tutorial.
***** Not quite sure what you mean. But there have been hundreds of different digital processor architectures since the early 1950s, when text based user interfaces and assemblers first came into use. The 8086 based x86-64 is just one of them.
I clicked on this video thinking"HELL YEAH IM GONNA MAKE MY OWN OPERATOR SYSTEM" and when I saw the code involved I was like"OK maybe I won't". Still giving thumbs up man
This is the most simple way to make an OS:use pre-written code and mod it,if you are too lazy to do the coding part,i recommend you use Suse Studio ( susestudio.com )
I see that others are moving forward, I am 20 years old and I am fascinated by bone programming, I really admire your work, I hope to reach the end like you.
This video got me into systems programming, fast forward a few years and i'm writing kernel modifications for Linux/FreeBSD/Darwin. Thanks for the video!
Dropping by to share my *personal* appreciation for the information you shared with us in your video. Making an operating system is a subject that I wish to explore further. Thank you in return for sharing your knowledge with us here on RU-vid.
There are plenty of resources on how to make your own dist for Linux. There's entire communities dedicated to it. If you wanna get into it, I would suggest you start by writing features for one of the more popular dists that are already out there. Dists like Ubuntu already have loaders in popular virtual machine softwares such as VirtualBox, all you need is the image file from the Ubuntu website. From there you can modify to your heart's content, and when you feel ready, you can try to rewrite some of the core. Once you get the hang of it, you can rewrite the entire core to fit your vision, and voilá, within a year or so you should be able to write your very own Linux dist. It's a cool thing to do, but don't expect many users, unless you can make it very unique and fit a very specific niche. The more generic purpose ones that are already out there fills those needs very well, have tons of support and hundreds of people working on improving them already, so as a lonely dev (or even small team), it's very hard to compete.
things that i got from this video: there is a sector on your media device that tells the computer where to start, the way that i can read that sector and see what it has, what to put in it for making it boot, a rough idea of what is a kernel and that i need A TON OF THINGS TO LEARN. Nevertheless THankyou so much
Yes, the title is misleading, but it has really helped me understand the source code for MikeOS, and I am now well on my way to understanding further the process of creating an OS.
Keep in mind that some computers can only boot from a floppy drive. And that wasn't our only option. It was simply the road we took, as it's easier to make your first operating system off a floppy than any other medium.
Those who think this is tough haven't gone through the GDT/LDT/IDT + paging + PAE part yet. Not to sound superior or anything, but although I was familiarised with non-X86 assembly for a long time it took me quite some time to figure out these peculiarities of the Intel architecture. It was a relief once I did. :-)
Tinkernut, I think you may need to update this. we don't really have a lot of floppy disks any more, and we're far too ahead on technology to have that floppy disk and etc. maybe heat configuring our own based off Linux?
This is very useful for new OS developers. I know it is just copying code but that way you learn how it functions then they can do it by themselves. I actually learned Lua by copying other people's code. Great video!
Dude! how do you identify window objects like buttons and editboxes in lua? I was trying to automate own macros with lua but no source found yet for 6 months now.
I've watched this video quite a few times. Each time when the assembly scrolled by I would think it was an impossibly long and confusing code. Looking at it now years later, yeah it looks challenging but far from practically impossible
"If you are expecting to create an os with no backround knowledge you will be very fustraated" Just downloaded tinker os changed everything to dylan os (;
How come you can copy contents in the floppy disk when you had already written the boot.bin the disk's boot sector? To open the floppy disk (after writing the bootloader in the boot sector) it asks me to format it first. My problem is: when I boot the OS, only the kernel.bin is showing, and not features. Help? Also, when I write: kernel.bin copy a:\kernel.bin, it says that I am attempting to open a .bin file. It doesn't copy it to the floppy disk.
I remember watching this video in 2010, it's been 13 years and I've gone to college, started and sold a business and here I am again to relive some memories when young me had windows 7, youtube and a dream lol
Why are there so many kids on there? They will just try to program for 5 minutes and then they get an error and they just go back to playing Roblox or Minecraft. XD
hey i need your help. whenever i run the debug command it says 'debug' is not recognized as an internal or external command, operavle program or batch file
Of course it's not possible to explain everything that's necessary to create an OS in one short video. But the video gives a nice overview. Great video in my opinion!
Sorry, dude. Got my Bachelor's Degree in Computer Science in 1987. I understood this whole video right down to the mistakes the guy made. No clickbait here.
I frankly don't care for the negative comments , although funny. It is a good video for overview to peak one's interest. Background music to keep interest is a nice touch.
@cycl0ps__ It's called open source for a reason. If you make an open source OS and release it to the public, other people have the right to do anything with it (which includes making a new OS out of it)
Probably should have mentioned that you need to fill up the rest of the bootloader space with 0s, and the correct code at the end to specify it as the bootloader for the BIOS. I realise that it was present in your code, but it's a pretty important piece of code to skip over with your explanation.
***** Doc: jnode.org/node/39 It's booted with GRUB, which clearly isn't written in Java. I am not really sure about the kernel, but I don't think Java can run without a JVM, which is started after loading the kernel.
+Istasis Mishra Actually you can as long as you write the boostrap code able to boostrap itself. I.E. you essentially write your own JVM to boostrap it.
Thanks sir, i wanted to know whether i can create an os containing atleast a text editor... For now i dont know much of it, but this really boosted my and I will get through the assembly language
I REMEMBER SEEING THIS CHANNEL LIKE A YEAR AGO AND WAS LIKE "WOAH DIS STUFF IS AUSOME MY 12 YEAR OLD MIND CAN'T TAKE IT" and never found the channel again now being 13 with about a year and a half of coding expierience I am so happy to have found this channel again SUBSCRIBE :D
+chandler lennox All you have to do is use Hardware Spright Generator for the mouse. Then use Opera Browser for the rest. It'll be easy after that. Good luck.
In cave times few people knew how to make fire. Today it is common knowledge. In medieval times few were literate. Today many people are literate. Today few people build their own OS. The future will be interesting.
Meh. ASM is NOT fun, and I never intend to learn it. I know Linux and XNU inside out. I think I understand how a OS works. The people who I could show it off to wouldn't KNOW what a os was. I think it is too boring.
Actually, I'll let RUBY take over, or python for some parts (speed) Nobody wants to write in C, unless it's Java, but only a few like Java. Disgusting syntax. I respect the JVM though.
+yasser aboamoud no, they would have to be specifically written for the os, that being they would need to have all their library dependences and they would need to be in the right executable type
what do you mean i still use them every day they are wonderful devices can have a good sized label despite only 1.44 mb of data still exellent oh and i still use those 5.25 inch ones too.
TheStevegeek still they are much slower than floppys and fail more often and floppys can re write much much much much more times than DVD's before they fail floppys you can write 150 times+ and it is still fine
too much annoying work involves too much programming and bug fixing constantly it wont be able to run anything like Firefox or a browser anyway depends on how you code the kernel way to much work nobody will ever write any software for it except your friends or if you pay someone a heck of a lot of money to do even then the kernel would need major changes for every hardware release and it would only work on the computer you made it on even then it will still be a unstable crappy OS which you could do more from a commodore 64 than what you would program best thing to do is if you really want to which is much quicker and will be incredibly stable and fast and all get a Linux distribution like arch and compile the kernels (choose a kernel version ) build it off from there choose a desktop environment and file manager other software to have on there basic stuff etc... then you got your own distro would work exellent then pack it to an iso throw it online you got your own distro! anyone could use it whatever unless you want to build if mikeos which nothing supports has little features but good if you want to start programming infact exellent.
that acer screen. that was my first lcd screen back in 2005. it's surprisingly good. it was a while after that one until screens supported 75hz again. i actually still have two of them, and both still work just fine.
my computer problems is say to recovery my pc needs to be repaired the boot configuration data file is doesn't contain valid information for operating system . file: \boot\BCD . error code: is oxc0000098 . how to solve this problems reply me
I think you did a good job introducing this. I'm glad I found your video. I'm a bit disappointed to find some of the comments below from people in the computing community. Still everyone is entitled to their point of view. If anybody wants to try this AND build their own hardware as well, go get a copy of The Art of Electronics, (and the Study Manual that goes with it for the schematics). The authors take you through building a computer from scratch. Bus interfacing, control, timing and I/O basics. There is a keypad and an LED display too. It's near the end of the book. The rest of it teaches electronics. Oh and a bit about hand coding assembly of course. Don't get too excited though its a 4 character LED and a hex pad. There's no OS. You have to tell it what to do to using hand coded assembly language. It won't run Firefox either and it's a lot of work too. It's a teaching/learning tool. Just like I expect the OS described in the video would be.
im lucky i can make a operating system but i have an errors and bad command and my computer say "beep" and restart... i have wrong command and i fix it in windows 10 again and again and again.... maybe after 7 years i will have my own operating system... but how internet can access to the operating system?
Hello :) I like this music from the intro. I tried to find it back then when watching your video how to hack wireless. Now I find this video! Such nostalgia :)
If I ever bothered to get back into learning programming, my project would probably be building on Mac System 7's (leaked) source code, to try to make it Intel compatible and suitable for modern stuff like USB. If there's one interface I seriously miss, it's that :(