From owner-freebsd-hackers@FreeBSD.ORG Mon Dec 10 09:11:38 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 52372B9D for ; Mon, 10 Dec 2012 09:11:38 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (agora.rdrop.com [IPv6:2607:f678:1010::34]) by mx1.freebsd.org (Postfix) with ESMTP id 2C92C8FC0C for ; Mon, 10 Dec 2012 09:11:38 +0000 (UTC) Received: from agora.rdrop.com (66@localhost [127.0.0.1]) by agora.rdrop.com (8.13.1/8.12.7) with ESMTP id qBA9BblW031909 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 10 Dec 2012 01:11:37 -0800 (PST) (envelope-from perryh@pluto.rain.com) Received: (from uucp@localhost) by agora.rdrop.com (8.13.1/8.14.2/Submit) with UUCP id qBA9BbNZ031908; Mon, 10 Dec 2012 01:11:37 -0800 (PST) (envelope-from perryh@pluto.rain.com) Received: by pluto.rain.com (4.1/SMI-4.1-pluto-M2060407) id AA17194; Mon, 10 Dec 12 01:02:22 PST Date: Mon, 10 Dec 12 01:02:22 PST From: perryh@pluto.rain.com (Perry Hutchison) Message-Id: <11212100902.AA17194@pluto.rain.com> To: aryeh.friedman@gmail.com Subject: Re: using FreeBSD to create a completely new OS Cc: freebsd-hackers@freebsd.org, zbeeble@gmail.com X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Dec 2012 09:11:38 -0000 > Forgot to mention this project vary well turn into my PhD thesis That's a rather different context than "personal hobby reasons". I was going to suggest this anyway, but for a dissertation project I would _very strongly_ suggest that you thoroughly research Linus Torvalds' experiences in implementing Linux, as well as any other low-level OS implementation projects that you can find in the literature (Multics, Unix, and OS/360 at least; Symbol 2R also comes to mind). Much of what those earlier implementors learned about "building an OS from scratch" will be directly applicable. (Granted Linus started with the SVID and you'll be writing your own specification, but the process of getting from {specification} to {code that actually works} is almost guaranteed to involve many of the same issues. PhD work is supposed to advance the state of the art, not rediscover the hard way what could have been learned in the library.) Perhaps equally important, I hope you're planning to figure out early on what "significant contribution to knowledge[1]" you will be making, and consider with your advisor whether it's necessary to go to all the work of building an entirely new OS to make that contribution. Again, you want to be standing on the shoulders of those who have gone before, not retracing their footsteps. [1] For those not familiar, that's the phrase typically used to describe the level of work that a PhD dissertation is supposed to report -- or at least it was when I was in graduate school. P.S. Just for general interest, what university?