creating an operating sytem(im not a programmer)

If it doesn't fit anywhere else, drop it in here. (not to be used as a chat/nonsense section)

Moderator: Moderator Team

mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

creating an operating sytem(im not a programmer)

Post by mrgoogle »

i heard some people saying that some ditros are based on ubuntu, some are on arch linux; whats the difference on where its based from, does it make faster and more stable (and even steve jobs said that iphone operating system is based on OSX) ? and that being said where is reactos based from??
User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: creating an operating sytem(im not a programmer)

Post by Konata »

An operating system is usually defined by the software suite that composes of it. iOS and OS X are both based on Darwin. I'm not sure how similar they are beyond that.
Linux distros aren't special, they're all the same thing. What usually defines those are the package managers. Every fork of Ubuntu or Arch is just that with some tweaks for convenience sake. Both Xubuntu and Manjaro literally exist for the sake of not having to install Xfce, which is one command.

ReactOS isn't based on anything, it's written from scratch. This is stated on the front page of the website.

You don't have to know how to program to appreciate how an operating system is put together. It's just a simple logical diagram, some components do some things and others do other things, that's all. You could read the Wikipedia article of the Windows NT architecture, which the ReactOS team also had to painstakingly recreate in ReactOS. NT's architecture is extremely complex, it's probably the most advanced operating system in the world.
PurpleGurl
Posts: 1790
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

Re: creating an operating sytem(im not a programmer)

Post by PurpleGurl »

Architecturally, ROS is based on Windows 2003. In terms of coding, it is fresh code except for parts that belong to other projects such as Wine, UniATA, LwIP, etc.
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

so what about this so called kernel? how important is it?monolithic vs microkernel vs hybrid kernel?? linux kernel vs reactos kernel? performance pros and cons and performance differences?
User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: creating an operating sytem(im not a programmer)

Post by Konata »

mrgoogle wrote:so what about this so called kernel? how important is it?monolithic vs microkernel vs hybrid kernel?? linux kernel vs reactos kernel? performance pros and cons and performance differences?
There are a lot of debates on this subject. Because I have a fetish for explaining things I'll try to detail the field.

There aren't a lot of solid definitions of a kernel, but the usual bare-bones definition is, it must handle interrupts (signals to the processor, like power-on, etc), synchronize the processor with other applications, aka multitask, and manage memory. It's what controls all of the computer's resources and what allows applications to run, essentially. Older operating systems and MS-DOS don't do multitasking but I'm just giving the definition of a modern kernel. In other words, the kernel is the operating system, the core part of it (which is why it's called a "kernel").

Kernels are usually divided into Kernelmode and Usermode. When software runs in Kernelmode, it has access to the entire computer and nothing really restrains it, usually what runs in Kernelmode is the kernel itself and maybe some system-critical services. Usermode is where most applications run, they can't do anything without asking the OS if it's okay to do it first, and they can't see the memory of other applications. They're entirely isolated, except for talking directly with the OS.

Monolithic kernels do not only do what a kernel has to, but have a lot more software within the kernel itself. Things like drivers, the display stack and system services. This is considered faster to do, because rather than having some time-critical software like drivers and display stacks go through the OS to do anything, they can just do it. The downside is, if anything crashes in the kernel, and a lot of stuff is inside a monolithic kernel, then the entire OS will crash.

Microkernels only do what a kernel has to. Device drivers and system-critical services are kept out of the kernel, and only run in Usermode. If they crash, nothing bad happens. The kernel, if set up to do it, can automatically revive the fallen process and continue working normally. Minix 3 does this, Andy Tanenbaum shows it off.

Windows NT is actually a bit of a fractured case. It has a genuine Microkernel. In fact, the memory manager isn't even in the kernel, it's a separate process. However, it runs a lot of system-critical processes in Kernelmode. It's considered a Hyrbid Kernel for that reason. Device drivers used to be in Kernelmode, but NT gradually began to support drivers in Usermode, and now modern Windows has mostly Usermode drivers.

Linux is a genuine Monolithic kernel. Essentially, absolutely everything is in the kernel. That, combined with it's horrible drivers, causes it to crash quite a lot, unless you just get lucky. This is a good thread on the Haiku forums criticizing Linus' deranged vendetta with Microkernels, might be insightful for you.

Also, as a side note, Linux isn't an operating system, it is in fact a kernel. Linux can't run by itself. Well, it can, but, you can't do anything with it. That's why some people call it GNU/Linux, because the GNU userland and coreutils provide tools that talk to the kernel which allow you to actually use it. Though, Busybox is also a set of coreutils that can replace GNU's, and I've never heard anyone say "Busybox/Linux". Probably why people mostly call the entire OS just "Linux". Other OSes provide their own kernel and coreutils, so they have full right to call their complete OS whatever they want (e.g. FreeBSD has their own kernel and userland, so the whole thing is just called FreeBSD and not any other name).

Really, the only people who think Monolithic kernels are "better" is Linus Torvalds himself. They're unreliable by nature, but some people desire them because they run a picosecond faster, so they think it's worth abandoning absolutely all safety and security measures for that tiny bit of speed you can't even notice on modern processors. Microkernels can heal themselves, when a driver crashes, most of the time it can bring them back up like nothing happened. I remember one time I was using Windows 7 and my display driver crashed. The screen went black for a second, then Windows automatically restarted the driver and everything was how it should be. Linux cannot do this, the driver crashing would crash the entire system, and that's happened to me too.

I'm a huge fan of pure Microkernels, but I think Windows NT hit a good balance. Most of the stuff running in Kernelmode would cause the OS to stop working if they crashed anyway. Heck, a lot of stuff running in Kernelmode would normally be part of the kernel itself, like the memory manager. So it's really not a huge deal. I usually refer to Windows as a Microkernel, even if it is a Hybrid. I especially sometimes call it a Microkernel because other "Hyrbid" OSes like OS X and Haiku really are more along the lines of just really small Monolithic kernels, NT is far more complex than those and I don't think it deserves to be categorized with them.

ReactOS' kernel is a clone of NT's kernel (Server 2003), written from scratch. It has the exact same architecture (well almost, it's still a work-in-progress but that's the ultimate goal).
the Architecture of Windows NT Wikipedia article is really a good read about what runs in Kernlemode. Another good read is the NT boot process.
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

Konata wrote:
mrgoogle wrote:so what about this so called kernel? how important is it?monolithic vs microkernel vs hybrid kernel?? linux kernel vs reactos kernel? performance pros and cons and performance differences?
There are a lot of debates on this subject. Because I have a fetish for explaining things I'll try to detail the field.

There aren't a lot of solid definitions of a kernel, but the usual bare-bones definition is, it must handle interrupts (signals to the processor, like power-on, etc), synchronize the processor with other applications, aka multitask, and manage memory. It's what controls all of the computer's resources and what allows applications to run, essentially. Older operating systems and MS-DOS don't do multitasking but I'm just giving the definition of a modern kernel. In other words, the kernel is the operating system, the core part of it (which is why it's called a "kernel").

Kernels are usually divided into Kernelmode and Usermode. When software runs in Kernelmode, it has access to the entire computer and nothing really restrains it, usually what runs in Kernelmode is the kernel itself and maybe some system-critical services. Usermode is where most applications run, they can't do anything without asking the OS if it's okay to do it first, and they can't see the memory of other applications. They're entirely isolated, except for talking directly with the OS.

Monolithic kernels do not only do what a kernel has to, but have a lot more software within the kernel itself. Things like drivers, the display stack and system services. This is considered faster to do, because rather than having some time-critical software like drivers and display stacks go through the OS to do anything, they can just do it. The downside is, if anything crashes in the kernel, and a lot of stuff is inside a monolithic kernel, then the entire OS will crash.

Microkernels only do what a kernel has to. Device drivers and system-critical services are kept out of the kernel, and only run in Usermode. If they crash, nothing bad happens. The kernel, if set up to do it, can automatically revive the fallen process and continue working normally. Minix 3 does this, Andy Tanenbaum shows it off.

Windows NT is actually a bit of a fractured case. It has a genuine Microkernel. In fact, the memory manager isn't even in the kernel, it's a separate process. However, it runs a lot of system-critical processes in Kernelmode. It's considered a Hyrbid Kernel for that reason. Device drivers used to be in Kernelmode, but NT gradually began to support drivers in Usermode, and now modern Windows has mostly Usermode drivers.

Linux is a genuine Monolithic kernel. Essentially, absolutely everything is in the kernel. That, combined with it's horrible drivers, causes it to crash quite a lot, unless you just get lucky. This is a good thread on the Haiku forums criticizing Linus' deranged vendetta with Microkernels, might be insightful for you.

Also, as a side note, Linux isn't an operating system, it is in fact a kernel. Linux can't run by itself. Well, it can, but, you can't do anything with it. That's why some people call it GNU/Linux, because the GNU userland and coreutils provide tools that talk to the kernel which allow you to actually use it. Though, Busybox is also a set of coreutils that can replace GNU's, and I've never heard anyone say "Busybox/Linux". Probably why people mostly call the entire OS just "Linux". Other OSes provide their own kernel and coreutils, so they have full right to call their complete OS whatever they want (e.g. FreeBSD has their own kernel and userland, so the whole thing is just called FreeBSD and not any other name).

Really, the only people who think Monolithic kernels are "better" is Linus Torvalds himself. They're unreliable by nature, but some people desire them because they run a picosecond faster, so they think it's worth abandoning absolutely all safety and security measures for that tiny bit of speed you can't even notice on modern processors. Microkernels can heal themselves, when a driver crashes, most of the time it can bring them back up like nothing happened. I remember one time I was using Windows 7 and my display driver crashed. The screen went black for a second, then Windows automatically restarted the driver and everything was how it should be. Linux cannot do this, the driver crashing would crash the entire system, and that's happened to me too.

I'm a huge fan of pure Microkernels, but I think Windows NT hit a good balance. Most of the stuff running in Kernelmode would cause the OS to stop working if they crashed anyway. Heck, a lot of stuff running in Kernelmode would normally be part of the kernel itself, like the memory manager. So it's really not a huge deal. I usually refer to Windows as a Microkernel, even if it is a Hybrid. I especially sometimes call it a Microkernel because other "Hyrbid" OSes like OS X and Haiku really are more along the lines of just really small Monolithic kernels, NT is far more complex than those and I don't think it deserves to be categorized with them.

ReactOS' kernel is a clone of NT's kernel (Server 2003), written from scratch. It has the exact same architecture (well almost, it's still a work-in-progress but that's the ultimate goal).
the Architecture of Windows NT Wikipedia article is really a good read about what runs in Kernlemode. Another good read is the NT boot process.
that being said, now i want to know hows the reactos kernel development going, and how stable is its kernel at the moment??
User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: creating an operating sytem(im not a programmer)

Post by Konata »

You can follow the JIRA for that.
I recall the memory manager needing a rewrite, but I'm not sure if that's actually done yet or not, but that's a really critical component and it's responsible for a lot of crashes.
Long story short, ReactOS needs a lot of work, but it's also gotten a lot of work done on it. It's closer than ever to being an accurate clone, being able to run a lot of software already.
But, right now, it's not stable at all. ReactOS' goal is to be a perfect clone, first and foremost. So there's a lot "incomplete" stuff in ReactOS. It can't run for long without crashing for no reason, and plugging USB devices into it will crash it. But even then, it wasn't too long ago where ReactOS couldn't run anything and couldn't run for more than 5 minutes, so it's progressed quite a lot.
If you want to see what I mean, look at the older version of ReactOS. Pick one out and load it in a VM (like VirtualBox). I recommend trying 0.1.0, 0.2.0, and 0.3.0.
erkinalp
Posts: 861
Joined: Sat Dec 20, 2008 5:55 pm
Location: Izmir, TR

Re: creating an operating sytem(im not a programmer)

Post by erkinalp »

I'm a huge fan of pure Microkernels, but I think Windows NT hit a good balance. Most of the stuff running in Kernelmode would cause the OS to stop working if they crashed anyway. Heck, a lot of stuff running in Kernelmode would normally be part of the kernel itself, like the memory manager. So it's really not a huge deal. I usually refer to Windows as a Microkernel, even if it is a Hybrid. I especially sometimes call it a Microkernel because other "Hyrbid" OSes like OS X and Haiku really are more along the lines of just really small Monolithic kernels, NT is far more complex than those and I don't think it deserves to be categorized with them.
Fullly microkernel or rump-kernel version of ReactOS kernel may be derived as a result of ReactOS HyperV and Xen porting efforts, with ~95% kernel-side and 100% userland compatibility with regular ReactOS kernel.
Linux is a genuine Monolithic kernel. Essentially, absolutely everything is in the kernel. That, combined with it's horrible drivers, causes it to crash quite a lot, unless you just get lucky. This is a good thread on the Haiku forums criticizing Linus' deranged vendetta with Microkernels, might be insightful for you.
Linux does also have user-mode I/O drivers, FUSE coming in mind.
-uses Ubuntu+GNOME 3 GNU/Linux
-likes Free (as in freedom) and Open Source Detergents
-favors open source of Windows 10 under GPL2
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

comparing helenos with reactos development., which one is more stable or more near in reaching beta stage?
User avatar
EmuandCo
Developer
Posts: 4730
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: creating an operating sytem(im not a programmer)

Post by EmuandCo »

mrgoogle wrote:comparing helenos with reactos development., which one is more stable or more near in reaching beta stage?
Would you please not hijack a thread for this? Make a new one
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

EmuandCo wrote:
mrgoogle wrote:comparing helenos with reactos development., which one is more stable or more near in reaching beta stage?
Would you please not hijack a thread for this? Make a new one
sorry i just want all this interesting conversation to be in one thread; im well aware that we're still in alpha, i just want to know if we're approaching the beta stage faster than haiku OS or HelenOS??
Z98
Release Engineer
Posts: 3379
Joined: Tue May 02, 2006 8:16 pm
Contact:

Re: creating an operating sytem(im not a programmer)

Post by Z98 »

Your question can't be answered in a meaningful manner with just laymen terms. Any answer we give will have lots and lots of technical qualifiers. Progress in software development is not linear and as such there is no real way to suggest that something is 'closer' or 'further' from completion relative to each other except in the most general terms.
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

Z98 wrote:Your question can't be answered in a meaningful manner with just laymen terms. Any answer we give will have lots and lots of technical qualifiers. Progress in software development is not linear and as such there is no real way to suggest that something is 'closer' or 'further' from completion relative to each other except in the most general terms.
if you can't tell how much we're closer to beta than other projects, can you at least tell if reactos much underdevelop or much more developed than helenos or haiku os ??
User avatar
Konata
Posts: 391
Joined: Sun Apr 20, 2014 8:54 pm

Re: creating an operating sytem(im not a programmer)

Post by Konata »

HelenOS doesn't compare, as it's not trying to recreate anything.
From what I can tell, Haiku has pretty much achieved it's goal. It seems to run really well. I don't know anything about BeOS or Haiku, but I'm almost positive BeOS is easier to clone than Windows NT.
ReactOS still has a long, long time ahead of itself before it achieves it's goal of complete Server 2003 compatibility. It's nowhere near done yet, even if it has made an amazing amount of progress already.
Windows NT, as I've said, is incredibly complex. It's layers upon layers of abstraction, it's incredibly difficult to clone. There's just so much to it. Not to mention that it's a hobby project and there are no full-time employees working on it. Don't hold your breath, just try to be patient and you'll be rewarded in the future.

But yeah, like Z98 said, you can't compare projects that have absolutely nothing in common with each other. HelenOS is it's own OS, Haiku is a clone of BeOS, FreeDOS is a clone of MS-DOS, and ReactOS is a clone of Windows Server 2003. They're entirely different, with different goals, different teams, different amounts of funding, different internal affairs, and different starting points. Besides, it's not like it's some kind of contest or anything.
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

Re: creating an operating sytem(im not a programmer)

Post by mrgoogle »

so haiku is already at beta stage, how is haiku os different from osx and linux??
Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests