Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 May 2013 10:15:23 +0000
From:      "Welcome, Traiano" <welcomet@amazon.com>
To:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Writing a (BSD like) Operating Systems From Scratch
Message-ID:  <8F56C8EF8265DF489B64A19B10910AC7025C53B2@ex10-mbx-14001.ant.amazon.com>

next in thread | raw e-mail | index | archive | help
Hi All

I've been read thousands of pages of FreeBSD and Linux Kernel source code a=
nd books on the internals of BSD and Linux over the years in attempt to dev=
elop a complete understanding of operating systems (or at least, UNIX like =
ones). However, I feel that I'm as mystified as to the finer details as whe=
n I first started. So I've concluded that the best way to really understand=
 the deep dark details of UNIX is to try and write one from scratch (using =
the general guidelines of standards like POSIX etc ...), and maybe taking a=
 peek at BSD and Linux from time to time. My questions around this are:


a)      What kind of hardware (processor) would I use as a development plat=
form, given the requirements of cheap,  well documented, easily obtainable,=
 easy to debug etc ... I believe the hardware platform chosen should satisf=
y the following requirements:


-          Cheap and relatively commodity (easy to get hold of)

-          Well documented architecture and API (there's a nice assembly la=
nguage for it)

-          Supports single and multi-core multi-tasking, memory management



b)      Are there recommended books or other resources that "hand hold" one=
 through the process of implementing a "toy operating system" , that are:

-          Current, circa 2011 - 2013

-          For hardware that meets the characteristics of a) above

-          Offer a simple start from the very basics of operating system de=
sign and implementation to the gory details


c)       What would be the best practical entry point design and implementa=
tion of operating systems? E.g should I begin with studying the assembly la=
nguage for a chosen hardware platform first, then move on to booting someth=
ing of memory, or  should I start with the high level architectural details=
 of the O.S ?

Many thanks in Advance for your thoughts!
Traiano Welcome







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8F56C8EF8265DF489B64A19B10910AC7025C53B2>