
Operating System Development Series (2008) - dingo_bat
http://www.brokenthorn.com/Resources/OSDevIndex.html
======
vertex-four
It seems that open-source operating system projects either never quite get
past the point of having a kernel that can print stuff, read/write FAT32, and
run a couple of userland processes, or they attempt to implement POSIX.

There's a couple of attempts to build something different - Haiku, based on
the design of BeOS; and Redox, written in Rust and implementing access to the
filesystem as URLs - but where's all the actual OS research? Where's the
service-oriented OS built on capabilities with a typed object store for a
filesystem?

~~~
adrianratnapala
I expect it is because people who want to provide something like your service-
oriented OS will do it as an application layer over existing operating
systems.

This also gives them the flexibility to factor the problem into smaller bits.
Cap'n Proto is a service-oriented something-or-other, built on capabilities
and even typed objects. But it does not give a flying -ck about storage.

~~~
kentonv
To be fair, Cap'n Proto is a sub-project of Sandstorm.io which is basically an
operating system and cares deeply about storage. But Cap'n Proto can be used
independently...

------
steveklabnik
Fun to see this popping up on the day I'm hacking on my own litte OS,
intermezzOS.

There's lots of great stuff in this series, but it also exemplifies an issue
with the hobby OSdev scene: it's almost all for protected mode, with some real
mode stuff, and very little long mode stuff. This one does have great real
mode stuff, though.

Protected mode is a bit simpler, which is nice. Hopefully over the next few
years, the long mode stuff will come along. Most of the hobby OSes in Rust are
in long mode.

~~~
nickpsecurity
I saw it before but didn't know it was yours. Congratulations on joining the
club of people doing software all the way to the metal "for real." :)

~~~
steveklabnik
Thanks. I was in it in college, but back again. :)

------
latenightcoding
Anyone interested in system programming should check xv6
[https://pdos.csail.mit.edu/6.828/2012/xv6.html](https://pdos.csail.mit.edu/6.828/2012/xv6.html)

both the source code and the free ebook

------
mentos
Would it be possible to move more parts of the operating system into hardware
to realize an improvement in speed? So for example say Microsoft announced
Windows 10 was the perfect operating system and needed no new features/bug
fixes would it make sense and would it be possible to realize the OS software
in hardware?

~~~
renlo
In chapter 2 of the tutorial, he mentions Commodore DOS as being an OS which
resides in ROM (read only memory), which means it's definitely possible. I'm
just a laymen but I'd wager that there are some cases where this is still
done.

~~~
yoo1I
But that's still just software stored in a ROM chip. I think what he meant was
implementing the actual logic in silicon. Something like a hardwired CPU.

I'm not aware of such a machine.

~~~
PeCaN
Intel i432 had some of that (capabilities, garbage collection, multitasking,
etc) but was crippled by a variety of problems—perhaps most of all that it was
quite slow and expensive. It was originally intended to run a Smalltalk-like
language, the name of which escapes me at the moment, but got retrofitted to
run Ada. Unfortunately the Ada compiler for the i432 was awful, in addition to
the slow hardware.

It was a pretty fascinating idea though.

------
MichailP
Anybody aware of nice, complete video lectures for Operating Systems class?
There were lectures from Stanford, but only sessions with profesor, no TA
session.

~~~
CommanderNyx
I've been looking at this to review OS fundamentals:
[https://www.udacity.com/course/introduction-to-operating-
sys...](https://www.udacity.com/course/introduction-to-operating-systems--
ud923)

and also this: [https://www.udacity.com/course/advanced-operating-systems--
u...](https://www.udacity.com/course/advanced-operating-systems--ud189)

My university also has its own recordings for the introductory OS class:
[https://recordings.engineering.illinois.edu:8443/ess/portal/...](https://recordings.engineering.illinois.edu:8443/ess/portal/section/2aba1524-90ed-4c1c-b43d-a32806ace2f5)

with the corresponding course website (for the latest term): [http://illinois-
cs.github.io/](http://illinois-cs.github.io/) and lab slides
[http://weichunstevelee.github.io/labs.html](http://weichunstevelee.github.io/labs.html)

Unfortunately, access to the machine problems code isn't available unless you
are an enrolled student.

But if you are looking just for video recordings, what I linked to is a decent
resource.

For Operating Systems Design (a more advanced course):
[https://recordings.engineering.illinois.edu:8443/ess/portal/...](https://recordings.engineering.illinois.edu:8443/ess/portal/section/ad9ebe52-1d13-4c62-9c5a-6cf4c5134eb7)

------
dang
Previously discussed at
[https://news.ycombinator.com/item?id=6268337](https://news.ycombinator.com/item?id=6268337).

------
gravypod
I did have some problems when working through the broken thorns tutorials. It
seems like some of the code on the site does not work verbatim. Needs a little
finagling.

------
leog7
I find LFS a better guide
[http://www.linuxfromscratch.org/lfs/](http://www.linuxfromscratch.org/lfs/)

~~~
dingo_bat
Isn't this different since you're actually writing everything including the
bootloader?

