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

User avatar
Black_Fox
Posts: 1584
Joined: Fri Feb 15, 2008 9:44 pm
Location: Czechia

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

Post by Black_Fox »

What do you want to use the OS for? Games? Browsing? Movies? Work? Telling others your OS is more complete than theirs? :-)

HelenOS - academical, it's not targeted at production systems.
Haiku - porting more and more apps to it, but it's probably missing some stuff. Still mostly enthusiast-targeted.
OS X, Windows, Linux - you can do basically anything with these, billions of computers run them.

Haiku has a different predecessor than Linux or OS X.

What is the knowledge you search for? Every your answered question just breeds more questions; what do you really want to know?
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 »

Haiku's written from scratch too. If you have questions about anything that isn't ReactOS, you should probably ask about it on their respective forums, or look it up on their Wikipedia articles.
PurpleGurl
Posts: 1787
Joined: Fri Aug 07, 2009 5:11 am
Location: USA

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

Post by PurpleGurl »

Konata wrote: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.
I am sure the team would like everyone to be careful of how the word "clone" is used. We are reimplementing Server 2003 from open source code and scratch, not copying it. And Haiku is not so much a clone, but a furthering of it, more like another version, but created by a different team since the original was discontinued and there was likely newer hardware it wouldn't run on or newer features it would not utilize.
erkinalp
Posts: 860
Joined: Sat Dec 20, 2008 5:55 pm
Location: Izmir, TR

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

Post by erkinalp »

PurpleGurl wrote: And Haiku is not so much a clone, but a furthering of it, more like another version, but created by a different team since the original was discontinued and there was likely newer hardware it wouldn't run on or newer features it would not utilize.
This is where we will also get in ten years' time. Windows XP enthusiasts and people depending on it will use ReactOS.
-uses Ubuntu+GNOME 3 GNU/Linux
-likes Free (as in freedom) and Open Source Detergents
-favors open source of Windows 10 under GPL2
bernarddt
Posts: 91
Joined: Fri Aug 29, 2008 1:57 pm
Location: Pretoria, RSA

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

Post by bernarddt »

Konata wrote: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, [...]
Wow @Konata! I literally leaned a whole book of knowledge from you in this one post. You really put it simple. Do you write articles as a living? You should consider writing News for ReactOS, you make complex concepts easy to understand. ReactOS need guys like this to help interest the majority of members that are mostly looking for an alternative to MS Windows, but don't have any coding, let alone "kernel mode" knowledge.

Please participate more on the forum!
Konata wrote: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.
I would like to add that to the general user, if you have a crash in Kernelmode code, it is presented by the infamous BSOD (Blue Screen of Death). If you are old enough you will remember that we had lots more of those in Windows 9x. These days with Windows 7 and up, it almost disappeared. And this disappearance is because of the movement of drivers into "Usermode".

And another explanation of why "Usermode" does not BSOD, is because code in "Usermode" is controlled by the kernel, and thus if it mis-behave the kernel can kill it, and clean up (..a more accurate word is "release") all the memory and hooks the code had. And then restart it. If code mis-behave in kernel mode, it has nothing that was watching it, so the kernel who could detect the mis-behave, does not know what to clean up and what to keep, so it declare defeat and BSOD, knowing that a kernal restart (aka System Reboot) is required to get into a know state again.

Last 10c, one of the reasons that lost of drivers can now be ported to "Usermode" code, is because the CPU has become so fast, that it can respond to a hardware interrupt, processing all of the monitoring kernel code, and return in time to give a near realtime feedback to the hardware.
mrgoogle
Posts: 58
Joined: Sun Aug 02, 2015 6:39 am

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

Post by mrgoogle »

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.[/quote]

thnk you very much @konata for sharing me this information but after debate w/ a programmer from a guy on the other forums i came to realize that linux can be just as stable windows as long as there is a massive resources and developers on working on it 24/7 just like windows which lead to conclusion that OSX is just as stable as windows
User avatar
Black_Fox
Posts: 1584
Joined: Fri Feb 15, 2008 9:44 pm
Location: Czechia

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

Post by Black_Fox »

mrgoogle wrote: thnk you very much @konata for sharing me this information but after debate w/ a programmer from a guy on the other forums i came to realize that linux can be just as stable windows as long as there is a massive resources and developers on working on it 24/7 just like windows which lead to conclusion that OSX is just as stable as windows
Generally, yes. Some people here may disagree because they don't "like" some of those operating systems :-)
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 »

The Linux kernel in general is fairly stable. Everything outside of it is extremely unstable and is why it never works. The drivers don't work, Xorg doesn't work, DBus doesn't work. I don't see the point in a kernel if nothing outside of it is working. Especially if it's a monolithic kernel and can't even fix the mistakes of everything it's running. At least OS X tries to fix these issues.
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 »

systemd. Hehe.
User avatar
dizt3mp3r
Posts: 1640
Joined: Mon Jun 14, 2010 5:54 pm

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

Post by dizt3mp3r »

I used to work at Sun to create fault tolerant Solaris systems, ftSparc. The hardware was ft but that was about it. The drivers were hardened to try to improve their stability but the o/s was still the only component that didn't really match the requirements of ft. It was really quite good for unix but not as good as VMS let alone non-stop.
Skillset: VMS sysadmin 20 years, fault Tolerance, cluster, Vax, Alpha, ftSparc. DCL, QB45, VB6, NET, PHP, JS, CMS, Graphics, Project Manager, DOS, Windows admin from 1985. Quad Electronics. Classic cars & motorbikes. Artist watercolours. Historian.
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 »

I've learned that fault tolerance isn't something that can be added on after the fact. You literally have to design for it from the start and then build the feature set you want on top of that. The problem of course is that it generally takes a couple of generations of software for developers to learn about what potential failure cases are so that they know how to do the design in the first place. Of course with the way modern software companies work, the ability to actually accrue that experience and then have the time to put it into practice is effectively non-existent.
User avatar
dizt3mp3r
Posts: 1640
Joined: Mon Jun 14, 2010 5:54 pm

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

Post by dizt3mp3r »

I worked on VMS (as you know)) and it isn't f.t. but it is very good at stability with 99.9999% uptime (at least) and redundancy can be built in through true clustering down to the record level. Combined with hardware redundancy of data, network and processing and you have something close to ft. VMS by design is stable and it was suitable for highly critical operations. It always worried me that the Royal Navy's CMS was migrated from Sun Solaris (not particularly stable) to Windows - for Warships (not stable at all)... Considering that the Royal Navy's thermonuclear arsenal is aboard the Vanguard submarines whose CMS (combat management system) is running Windows I don't feel as safe as I would have done if it was running VMS. At least it won't be Windows Vista/8 or 10. Windows Monolithic design makes it unsuitable for critical systems yet it still was chosen for use by the RN. :(
Skillset: VMS sysadmin 20 years, fault Tolerance, cluster, Vax, Alpha, ftSparc. DCL, QB45, VB6, NET, PHP, JS, CMS, Graphics, Project Manager, DOS, Windows admin from 1985. Quad Electronics. Classic cars & motorbikes. Artist watercolours. Historian.
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 »

What do you mean Windows' "monolithic design"? Why exactly isn't it suitable for critical applications?

I'm not terribly worried. It's used as a soft RTOS on most of the factory robots on the planet, so it's got a track record behind it.
User avatar
dizt3mp3r
Posts: 1640
Joined: Mon Jun 14, 2010 5:54 pm

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

Post by dizt3mp3r »

I thought my description would have been enough. Thermonuclear warheads and windows in the same sentence? The BSOD starts to really mean something here.

I am not going to have a discussion about it here, I merely raised it a point of interest. I suggest you look up what ft (fault tolerance) and stability means with regard to o/ses and hardware. It is a subject in itself. Regarding Windows' monolithic structure, just look it up and compare it with modular structures of other o/ses which make them adaptable and usable in critical applications. See also Bill Gates' testimony to the US supreme court re: Windows' monolithic structure.

That's enough for you to be going on with.
Skillset: VMS sysadmin 20 years, fault Tolerance, cluster, Vax, Alpha, ftSparc. DCL, QB45, VB6, NET, PHP, JS, CMS, Graphics, Project Manager, DOS, Windows admin from 1985. Quad Electronics. Classic cars & motorbikes. Artist watercolours. Historian.
karlexceed
Posts: 528
Joined: Thu Jan 10, 2013 6:17 pm
Contact:

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

Post by karlexceed »

Windows for Warships 3.11 :shock: :?
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest