Building my own Kernel / UNIX

Hello Cred Forums

I did some Visual Basic at school in the past and I was reading some wiki on UNIX / kernel so I got excited and I would like to build a new one. UNIX is now used by Microsoft, Apple etc so a new one would be revolutionary.
How do I start by it? Can you recommend me some videos on Youtube? I think this is a multi million idea.

Other urls found in this thread:

wiki.osdev.org/Getting_Started
wiki.osdev.org/Beginner_Mistakes
wiki.osdev.org/Bare_Bones
wiki.osdev.org/Category:OS_theory
twitter.com/NSFWRedditImage

...

...

guys I am being serious. What programming language should I learn for this purpose?

None, if you have to ask.

...

...

Hindi

elaborate ?

UNIX was always shit, but it was the majority marketshare back in the day, thus if your shit was compatible with UNIX, that made it more functional.

Trying to be UNIX compatible in 2016 where desktop is 99% Win/Linux, servers are 100% Win/Linux, and phones are 90% Win/Linux is just retarded.

Basically everything that's not Windows, including Linux, is either Unix or Unix-like.

First things first: Learn C, and learn the assembly language of the CPU architecture you are intending to target.

After that, get ready for a bumpy ride. The following are some decent resources. I wouldn't recommend any youtube tutorials, as there is a lot of theory that you are going to need to learn first, that isn't likely to be covered in a video series.

wiki.osdev.org/Getting_Started
wiki.osdev.org/Beginner_Mistakes
wiki.osdev.org/Bare_Bones

And be sure to read everything in here:

wiki.osdev.org/Category:OS_theory

Every modern operating system is written in C. Even Google's new and upcoming operating system, Fuchsia, has its kernel written in C. The C programming language was built specifically for developing the Unix operating system, so you could say it is the best tool for the job of operating system development. If you do not want to use C, however, you can certainly do the job with Ada, C++, Rust, or any other language that compiles ahead of time into native code, allows for raw pointer access (including conversion of integers into raw pointers), and has no requirements on a runtime environment. Garbage collectors are strictly out of the question, because where you're going, you're going to have to write your own memory allocator.

Also, regardless, you will need some assembly for the bootstrap code, context switching, and depending on your architecture, SOME system-level instructions for setting up things like threading, page tables, and what not.

Linux and UNIX have diverged a great deal since linux's "unix-like" beginnings. Linux won. Deal with it faggot.

In case you're serious:
Learn C. Learn the POSIX standards. Plan to spend a lot of time on it and still have it come out terrible. The reason this tree has so few branches and even fewer independent paths (reimplementations) is that making an operating system is hard, not that no one's thought of it. Everyone uses Linux because it's good and free and easier than writing their own kernel, and the BSDs use code from the original UNIX because that's easier than reimplementing it.

It'll be really hard, but if you get really good and you work hard you might be able to make a small OS or kernel that works okay with very little hardware support.

Still Unix-like.

POSIX was always shit, but it was the majority marketshare back in the day, thus if your shit was compatible with POSIX, that made it more functional.

Trying to be POSIX compatible in 2016 where desktop is 99% Win/Linux, servers are 100% Win/Linux, and phones are 90% Win/Linux is just retarded.

You do realize Linux and BSD are mostly POSIX compliant, right? If his OS supports POSIX he'll actually have software to run instead of just some useless thing that boots.

You do realize POSIX is a meme, right? If his OS is Linux he'll actually have real software to run instead of just some useless thing that boots.

You're fucking retarded. Please stop posting.

You're fucking retarded. Please stop posting.

no u

no u

Most software that runs on Linux will compile and run for practically any POSIX system. For other applications, it is possible to build a compatibility layer. Some BSDs do it, and recently, Windows has done it.

underrated

I guess you mean GNU/Linux. Linux can't run programs on it's own.

No, he means Linux. You fucking autist.

how much time do you think it will take you?

a couple of months with the research and reading, maybe?

Why? I mean, Windows, Linux and BSD aren't perfect, but Linux is customizable to the core. There is no realistic reason to build a kernel unless you are doing it for a corporation. You can't just build a kernel anyway, you likely need a fairly large team that knows more than just "visual basic at school". And speaking of which, you learned an outdated language, congrats on wasting your education and time.

>it is possible to build a compatibility layer

Or you could not be a turbo autist and just use Linux as a base and have the software run natively with no bullshit.

Holy shit, you are so wrong that it hurts

Times New Roman

Comic Sans

Arial master race.