Live data from Hacker News

Roll Your Own UNIX Clone

jamesmolloy.co.uk

21–30 of 44 posts

Re: Roll Your Own UNIX Clone

#21

Please don't! Build something original . It really is possible! Once you've built a UNIX clone, you have polluted your mind as an OS designer. I did so (as a standard college homework assignment) and it took me years to shake the crud out of my head. As for the tutorial, it is very well written, but x86-32-centric and therefore worthless. There are nontrivial differences between x86-32 and x86-64 from the standpoint…

Building an 'original' OS when you don't know how to build an OS is like asking a kindergartener to design a car.

As for the x86/x64 differences, they're by no means insurmountable once you have the concepts down, which is exactly what this tutorial provides.

Re: Roll Your Own UNIX Clone

#22
post #21

Please don't! Build something original . It really is possible! Once you've built a UNIX clone, you have polluted your mind as an OS designer. I did so (as a standard college homework assignment) and it took me years to shake the crud out of my head. As for the tutorial, it is very well written, but x86-32-centric and therefore worthless. There are nontrivial differences between x86-32 and x86-64 from the standpoint…

Building an 'original' OS when you don't know how to build an OS is like asking a kindergartener to design a car. As for the x86/x64 differences, they're by no means insurmountable once you have the concepts down, which is exactly what this tutorial provides.

Who knows, sometimes being versed in the status-quo is a hindrance.

Re: Roll Your Own UNIX Clone

#23
post #21

Earlier quoted context omitted.

Building an 'original' OS when you don't know how to build an OS is like asking a kindergartener to design a car. As for the x86/x64 differences, they're by no means insurmountable once you have the concepts down, which is exactly what this tutorial provides.

Who knows, sometimes being versed in the status-quo is a hindrance.

If you don't understand the mistakes of the past, you're bound to repeat them. This is especially true if you haven't implemented a real-esque kernel already. Pushing someone away from a tutorial that does a great job of teaching the concepts while telling them to do something original is just ludicrous.

OS development is already difficult enough, why make it harder? For every ten people that read and follow this and decide to make the Next Big OS (TM) following Unix concepts, you might get one that sees something bigger.

Re: Roll Your Own UNIX Clone

#24
post #21

Please don't! Build something original . It really is possible! Once you've built a UNIX clone, you have polluted your mind as an OS designer. I did so (as a standard college homework assignment) and it took me years to shake the crud out of my head. As for the tutorial, it is very well written, but x86-32-centric and therefore worthless. There are nontrivial differences between x86-32 and x86-64 from the standpoint…

Building an 'original' OS when you don't know how to build an OS is like asking a kindergartener to design a car. As for the x86/x64 differences, they're by no means insurmountable once you have the concepts down, which is exactly what this tutorial provides.

What makes you assume that blindly copying Unix is necessarily the easiest way to learn OS building?

Re: Roll Your Own UNIX Clone

#25
post #23

Earlier quoted context omitted.

Who knows, sometimes being versed in the status-quo is a hindrance.

If you don't understand the mistakes of the past, you're bound to repeat them. This is especially true if you haven't implemented a real-esque kernel already. Pushing someone away from a tutorial that does a great job of teaching the concepts while telling them to do something original is just ludicrous. OS development is already difficult enough, why make it harder? For every ten people that read and follow this and…

Ok, I can agree with that. So how do you feel about studying some of the more exotic variations on the theme (say, Plan 9) ?

Re: Roll Your Own UNIX Clone

#26
post #21

Earlier quoted context omitted.

Building an 'original' OS when you don't know how to build an OS is like asking a kindergartener to design a car. As for the x86/x64 differences, they're by no means insurmountable once you have the concepts down, which is exactly what this tutorial provides.

What makes you assume that blindly copying Unix is necessarily the easiest way to learn OS building?

It very well could not be, but what's important here isn't what's built, but how it's built. The concepts are important, not the end result. Compared to the vast majority of intro to OS tutorials out there, this is great.

As I said, you can't expect someone to create something original unless they understand the mistakes of the past. I started off implementing toy kernels with no structure, moved on to Unix-like kernels, and eventually ended up in a realm entirely different. Just because someone starts out copying Unix doesn't mean they're going to be blind to other competing designs or completely unique ones.

Expecting someone to build something new without any basis is just foolish.

Re: Roll Your Own UNIX Clone

#27
post #23

Earlier quoted context omitted.

If you don't understand the mistakes of the past, you're bound to repeat them. This is especially true if you haven't implemented a real-esque kernel already. Pushing someone away from a tutorial that does a great job of teaching the concepts while telling them to do something original is just ludicrous. OS development is already difficult enough, why make it harder? For every ten people that read and follow this and…

Ok, I can agree with that. So how do you feel about studying some of the more exotic variations on the theme (say, Plan 9) ?

If you're serious about getting into OS development and doing something different, you have to study everything available. Plan 9 (and the closely related Inferno), L4 (my personal favorite microkernel), NT, BeOS, Singularity, etc. If you're going to build something unique, you have to sample everything.

Re: Roll Your Own UNIX Clone

#28
post #27

Earlier quoted context omitted.

Ok, I can agree with that. So how do you feel about studying some of the more exotic variations on the theme (say, Plan 9) ?

If you're serious about getting into OS development and doing something different, you have to study everything available. Plan 9 (and the closely related Inferno), L4 (my personal favorite microkernel), NT, BeOS, Singularity, etc. If you're going to build something unique, you have to sample everything.

This is terrifyingly bad advice, all the more so because no one here seems to understand why or even thinks there is anything to understand.

Learning has a direct cost in creativity. Once you have mired your brain in cached thoughts (http://lesswrong.com/lw/k5/cached_thoughts/) of Unix brokenness, it is very difficult to dislodge them. They won't feel like cached thoughts, or like anything special for that matter - just "the way you write operating systems."

Not one of the systems you mentioned deviates in any fundamental way from the mistakes of the original Unix. Not one. One of the reasons for this is that each was designed by people who have been steeped in Unix internals.

Re: Roll Your Own UNIX Clone

#29
post #26

Earlier quoted context omitted.

What makes you assume that blindly copying Unix is necessarily the easiest way to learn OS building?

It very well could not be, but what's important here isn't what's built, but how it's built. The concepts are important, not the end result. Compared to the vast majority of intro to OS tutorials out there, this is great. As I said, you can't expect someone to create something original unless they understand the mistakes of the past. I started off implementing toy kernels with no structure, moved on to Unix-like kern…

> Expecting someone to build something new without any basis is just foolish

Base it on your mental model of how your CPU's internals ought to be used, as inferred from the latter's manuals - like 1980s microcomputer users did.

Creativity exists.

Re: Roll Your Own UNIX Clone

#30
post #27

Earlier quoted context omitted.

If you're serious about getting into OS development and doing something different, you have to study everything available. Plan 9 (and the closely related Inferno), L4 (my personal favorite microkernel), NT, BeOS, Singularity, etc. If you're going to build something unique, you have to sample everything.

This is terrifyingly bad advice, all the more so because no one here seems to understand why or even thinks there is anything to understand. Learning has a direct cost in creativity. Once you have mired your brain in cached thoughts ( http://lesswrong.com/lw/k5/cached_thoughts/ ) of Unix brokenness, it is very difficult to dislodge them. They won't feel like cached thoughts, or like anything special for that matter -…

Yes, learning has an impact (negative and positive) on creativity, but not learning has an impact on your ability to design and implement in general.

In addition, what Unix mistakes do you see in Singularity, for instance? It's drastically different from Unix-like kernels in effectively every way.

What OSes would you recommend that budding OS developers study, if not these? Amoeba is one of the few I can think of off the top of my head that might fit what you're looking for.

Post reply on HN