Jump to content

OS Building

i was thinking of building an os, but i don't know where to start

any help would be appreciated

thanks

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

What do you mean by "building an OS"? If you want to make your own distro of linux there is plenty of information about it in the internet. Simple google search returned me some really interesting articles. 

Main Rig - AMD Ryzen 1800X @ 3.9 - NZXT Kraken X62 - MSI X370 SLI PLUS - G.Skill TRIDENT Z RGB 16GB 2667MHz - 2 x Gigabyte GeForce GTX1080 WindForce OC - NZXT S340 (Purple-White) - OCZ 120GB, Seagate 1TB - Corsair RM750i 80+ Gold - SAMSUNG S24D590 24", HP L1950g - Logitech G810 Orion Spectrum - Logitech G502 Proteus Spectrum - Creative Cambridge Sound Works + two random Philips speakers, Logitech G430 headset - Win 10 Pro x64

Retro Gaming PC - ASUS T3

Server - HP ProLiant DL380 G6(Currently assembling it) - 2 x Intel Xeon E5520 2.26GHz 8MB Quad Core Processor

NAS - Zyxel NSA320S 2 x Seagate Constellation ES 2TB(RAID1) - QNAP TS-212 1 x 500GB

 

-=Logitech FanBoiiiiiiii=-

I love NZXT as well <3

Link to comment
Share on other sites

Link to post
Share on other sites

As @Marine_Boy said, you could try making your own linux distro, however if you're looking to try making something entirely from scratch, good luck with that (Windows: C, C++, and Assembly. MacOS: C, C++, Objective-C, and Swift. Linux: Primarily C and Assembly.), you'd be better off just using an existing OS or making a linux distro.

Specs: CPU - Intel i7 8700K @ 5GHz | GPU - Gigabyte GTX 970 G1 Gaming | Motherboard - ASUS Strix Z370-G WIFI AC | RAM - XPG Gammix DDR4-3000MHz 32GB (2x16GB) | Main Drive - Samsung 850 Evo 500GB M.2 | Other Drives - 7TB/3 Drives | CPU Cooler - Corsair H100i Pro | Case - Fractal Design Define C Mini TG | Power Supply - EVGA G3 850W

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, techman980 said:

i was thinking of building an os, but i don't know where to start

any help would be appreciated

thanks

 

ummmmm I am currently doing a course at uni on Operating systems and to build one yourself I say good luck to you. Though there are plenty of books on operating systems which would be a good place to start and if you haven't done any coding before you should start there with some C programming

CPU: Intel i7-4790K @ stock for now --- RAM: Corsair Vengeance 16Gb --- MOBO: Asus Maximus VII Formula --- GPU: MSI Gaming GTX 980ti --- PSU: Corsair AX860i  ---  Storage: Samsung 850 250gb(OS), 3x Western Digital Blue 3tb (one for game and programs, two for media), 3tb WD Green(somewhat backup) and a Crucial M550 120gb SSD (caching games and programs drive)  --- Case: Fractal Define R5 --- Cooler: Corsair H100i with Noctua 2000rpm, Industrial Fans --- OS: Windows 10 --- Monitor: Asus PB298q + AOC l2260SWD --- Mouse: Logitech G502 Spectrum --- Keyboard: Corsair K70 (Cherry MX Red) Red LED's --- Audio: Audio Engine A2's (yes the originals), Sennheiser HD 58x Jubilee Audio-Technica ATH-AD900x, Audio-Technica ATH-M50x, Ant Lion Mod Mic V4 --- Laptop: Dell XPS 9750 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

thanks for the luck

i was thinking of coding it from scratch, but the linux thing makes a lot of sense

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

Linux From Scratch and some customization makes sense here

idk

Link to comment
Share on other sites

Link to post
Share on other sites

i understand what you mean @Nicholatian. I tried modifying windows, it worked for about 3 minutes, until the kernel started throwing memory allocation errors     at me from left, right, and centre. i had to ssh in to kill the kernel.

 

as for the game console ideas, again, i tried making a custom kernel for the snes

and i thought, "shouldn't be too hard" , 20 minutes later, the snes was lying in the trash, with smoke coming from it.

 

But, Thanks for the info, im currently researching making a linux os with the theme

based around the cloud

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

Start by getting a computer science or computer engineering degree at a university, then move on to a Master or Ph.D, then work in a software company for several years to get more experience.

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

i understand what you mean,its just, i dont have the money or the time

 

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

Read the Arch Installation wiki then setup a basic arch install. If all works out, then do it again a few times changing the setup like desktop manager or file manager. Finally once you are a bit more comfortable with the Arch environment, create a setup to suit your taste.

Link to comment
Share on other sites

Link to post
Share on other sites

ok, ill try that, it sounds promising

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

the process has started

Capture.JPG

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

well, on the arch linux front. it wont boot in vmware, my old pc, my new pc, my server, virtualbox, my laptop, or my main desktop

 

EDIT: it boots but complains of an x86-64 processer, when all my cpus are x86-64

 

HELP

Edited by techman980
spelling

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, techman980 said:

i was thinking of building an os, but i don't know where to start

any help would be appreciated

thanks

Oh man, seriously.

Good luck

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

What are your goals? If you don't have the motivation for it then It's wasted time because you will never finish it.

PC: Case: Cooler Master CM690 II - PSU: Cooler Master G650M - RAM: Transcend 4x 8Gb DDR3 1333Mhz - MoBo: Gigabyte Z87x-D3H - CPU: i5 4670K @ 4.5Ghz - GPU: MSI GTX1060 ARMOR OC - Hard disks: 4x 500Gb Seagate enterprise in RAID 0 - SSD: Crucial M4 128Gb

Phone: Samsung Galaxy S6

Link to comment
Share on other sites

Link to post
Share on other sites

You'd have to give us a rundown of your current skillset.

 

You'd need at least C and a fair amount of assembly (or just copy and paste from osdev), you'll also require a lot of OS theory that comes with it (someone else mentioned TempleOS - Terry gets credit for that because his system wasn't a complete rip off of UNIX. All these other projects are basically just hobbyist recreating UNIX). OSDev is a good resource. I've been meaning to write a mini kernel for my raspberry pi for a while now but, what you have to realise is: a full blown OS is a huge endeavour.

 

You'll have to write your mini bootloader, memory related stuff (separate kernel and user memory, paging system, etc.), I/O primitives, hardware threading, handle other interrupts, etc. There's so much stuff you'd have to do on top of this. I don't think writing a basic kernel is a very challenging endeavour for a skilled C developer with the right resources (OSDev is great). A full-blown OS? Keep dreaming. Current operating systems have been in development for years with thousands of people working on them along with interest from third party companies to add hardware support etc.

 

OP:

If you're gonna install Arch in a VM, just use like Arch Anywhere or something. Will save you effort and will give you the same idea. 

 

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, techman980 said:

i understand what you mean,its just, i dont have the money or the time

 

Well clearly you don't understand how complex or time consuming building an operating system is.

 

7 hours ago, Shura said:

Read the Arch Installation wiki then setup a basic arch install. If all works out, then do it again a few times changing the setup like desktop manager or file manager. Finally once you are a bit more comfortable with the Arch environment, create a setup to suit your taste.

Changing some options =/= building an OS.

"omg I built windows, I edited a registry value" lol that's not how it works.

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

If you really want to learn how to create an OS, I would start with MINIX on the grounds MINIX was developed to be used as an educational tool to teach operating systems and was designed to be simple (it's something like 12,000 lines of code vs. the millions that the big three have). You should also get MINIX's author's book while you're at it.

 

Otherwise, you should start learning C and x86 or ARM assembly and get intimate with learning how to program on "bare metal" systems.

 

Now I'm not going to say the task is insurmountable for a random person. That is, saying it's like trying to climb Mt. Everest when you're a rookie climber. It's more like trying to complete the Badwater Ultramarathon. I mean, Linus started working on Linux while he was still in college.

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, Enderman said:

Changing some options =/= building an OS.

"omg I built windows, I edited a registry value" lol that's not how it works.

Of course not. If OPs main issue is with the look/aesthetics of windows, features, or more direct control then Linux is his best option at "customizing" an OS to suit his taste. Plus OP said he had no time or money; money aside, there is no way your gonna write code for an entire OS without time so again, customizing Linux is the next best alternative. I mentioned Arch since it has a great installation wiki and forces you to learn/setup your own environment and gives you a bit more control(imo) than something like Ubuntu or Mint which is customized for you.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Shura said:

Of course not. If OPs main issue is with the look/aesthetics of windows, features, or more direct control then Linux is his best option at "customizing" an OS to suit his taste. Plus OP said he had no time or money; money aside, there is no way your gonna write code for an entire OS without time so again, customizing Linux is the next best alternative. I mentioned Arch since it has a great installation wiki and forces you to learn/setup your own environment and gives you a bit more control(imo) than something like Ubuntu or Mint which is customized for you.

Well clearly he doesn't understand how complex an OS is, and thinks he can make one with no time or money or education, so maybe he should start by changing the desktop wallpaper or something. That sounds more feasible :)

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Enderman said:

Well clearly he doesn't understand how complex an OS is, and thinks he can make one with no time or money or education, so maybe he should start by changing the desktop wallpaper or something. That sounds more feasible :)

Maybe but that's especially why I think an Arch install(a few times) is a good start. It will force you to read through the wiki, get familiar with the terminal and installing/editing/troubleshooting through commands as opposed to the clicking "next" a few times on the mouse.

 

Plus I know enough veteran linux users who give up on Arch after trying the install process so if OP is serious, it's a good start for his situation. We understand the difficulties involved but sometimes people won't understand for themselves until they attempt it and see first hand at the difficulties of the task.

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, stmfd sp!, {lr} said:

You'd have to give us a rundown of your current skillset.

 

You'd need at least C and a fair amount of assembly (or just copy and paste from osdev), you'll also require a lot of OS theory that comes with it (someone else mentioned TempleOS - Terry gets credit for that because his system wasn't a complete rip off of UNIX. All these other projects are basically just hobbyist recreating UNIX). OSDev is a good resource. I've been meaning to write a mini kernel for my raspberry pi for a while now but, what you have to realise is: a full blown OS is a huge endeavour.

 

You'll have to write your mini bootloader, memory related stuff (separate kernel and user memory, paging system, etc.), I/O primitives, hardware threading, handle other interrupts, etc. There's so much stuff you'd have to do on top of this. I don't think writing a basic kernel is a very challenging endeavour for a skilled C developer with the right resources (OSDev is great). A full-blown OS? Keep dreaming. Current operating systems have been in development for years with thousands of people working on them along with interest from third party companies to add hardware support etc.

 

OP:

If you're gonna install Arch in a VM, just use like Arch Anywhere or something. Will save you effort and will give you the same idea. 

 

@stmfd sp!, {lr} skill sets: i know twelve programming languages; Java, PHP, JavaScript, Python, Objective-C, Ruby, Perl, C, C++ and C#, SQL and Swift. I have an advanced higher (slightly harder than A2's in england, don't know what they are in america) in Computer Science and Programming and Maths.

I can build PC's

1 hour ago, Enderman said:

Well clearly he doesn't understand how complex an OS is, and thinks he can make one with no time or money or education, so maybe he should start by changing the desktop wallpaper or something. That sounds more feasible :)

Oh no @Enderman i know how complex an OS is, and on the education front, look earlier in this post. as for changing the wallpaper, done it thousands of times, and i've finally found the one (Druada.jpg is my current)

DRUADA.JPG

mother nature dictates that if you develop a custom kernel for the snes, it gets worked up, steam comes out the cartridge port, then it kills itself

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, techman980 said:

@stmfd sp!, {lr} skill sets: i know twelve programming languages; Java, PHP, JavaScript, Python, Objective-C, Ruby, Perl, C, C++ and C#, SQL and Swift. I have an advanced higher (slightly harder than A2's in england, don't know what they are in america) in Computer Science and Programming and Maths.

I can build PC's

Oh no @Enderman i know how complex an OS is, and on the education front, look earlier in this post. as for changing the wallpaper, done it thousands of times, and i've finally found the one (Druada.jpg is my current)

DRUADA.JPG

The issue is you've masticated the meaning behind "knowing" programming languages. "Knowing" != having used. You have to be more honest in which languages you'd consider yourself proficient in. I often make a few assumptions that second people bring up languages because I'm a bitter, pessimistic, sceptic:

- Knowing C: means nothing to me or anyone. I meet a lot of people who've read K&R and believe that's what "knowing C" means. Real utility of C would only become prominent when you have experience in things like WinAPI or *nix programming.

- Knowing C++: I doubt everyone who claims to know C++. To be truly proficient at C++, you have to be dedicated to it. A lot of people ignorantly claim to know C++ because they've envisioned it as some form of greyish C with classes. This is so far from accurate. C and C++ may appear incredibly similar on the outside but the difference lies in the latter; C++ is a much larger language than C - in features and in the STL. Being proficient at C++ nowadays would mean being proficient at C++14. So, until you've mastered that (which I seriously doubt you have, no offence - as I said, I doubt everyone since being committed to modern C++ is quite an esoteric endeavour), you should revise your definition of "to know".

- Knowing Java: in what sense? In the industry sense e.g. working with Spring or the hobbyist Swing and JavaFX developer?

I could make points about the other languages you mentioned but I'm hoping you see my point by now. 

 

Please revise your list and tell me the languages you're proficient at; not the ones you've touched.

And, if my thought-dreams could be seen,
they'd probably put my head in a guillotine.
But, it's alright, ma, it's life, and life only.

Link to comment
Share on other sites

Link to post
Share on other sites

I have an old friend that was building a basic UNIX-like OS for university course. You could use it as an example https://github.com/haliucinas/Marox . I do not remember how he would run fast tests on it though. Maybe QEMU? I don't really remember :'( . It's definitely an interesting project, building an OS that is, so I wish you to have fun with it :)

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×