From owner-freebsd-hackers@FreeBSD.ORG Mon Dec 10 04:48:13 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 8A75FC37 for ; Mon, 10 Dec 2012 04:48:13 +0000 (UTC) (envelope-from aryeh.friedman@gmail.com) Received: from mail-oa0-f54.google.com (mail-oa0-f54.google.com [209.85.219.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4BB6F8FC12 for ; Mon, 10 Dec 2012 04:48:13 +0000 (UTC) Received: by mail-oa0-f54.google.com with SMTP id n9so2754141oag.13 for ; Sun, 09 Dec 2012 20:48:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=k7OiPlXmEVDTUYsMOo6Z5cRkZ7MbjkfAVlK+3Nb3cik=; b=uGLx76NLtwZrqVvnAulG/tPlkvpyDqfJ9YZs48s8g7JbMtlEeRMz9mGg/oj0z1yySS qwW/5YM7LUh3kAsdPNM26xJfU0YBTCmuzCQLnEk71gogzA98UUst5SurIj39YZo2YSdI MM6e7Eo1vWTRGAmHQDcqwEcBrjzxI+LMZXm5+GIFV8OIsYRKDsytT2sD/hA9RJdj/qVY D36hX3MA+AifJHSuOfJ4XYATKACs/cwEW9mpJiY50L121T/GOZZ74N+Ld4P6EweOc0cb nYqx+1RXOR/1NKDSmAlehmD0ZRgwQI03I8h6uAcqjUYRW+ZiHF1G2Aw3ACJjzznkSFX+ dMyg== MIME-Version: 1.0 Received: by 10.182.207.70 with SMTP id lu6mr6662670obc.78.1355114892499; Sun, 09 Dec 2012 20:48:12 -0800 (PST) Received: by 10.182.158.137 with HTTP; Sun, 9 Dec 2012 20:48:12 -0800 (PST) Date: Sun, 9 Dec 2012 23:48:12 -0500 Message-ID: Subject: using FreeBSD to create a completely new OS From: Aryeh Friedman To: FreeBSD Mailing List Content-Type: text/plain; charset=ISO-8859-1 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 04:48:13 -0000 For personal hobby reasons I want to write an OS completely from scratch (due to some aspects of the design no existing OS is a suitable starting place)... what I mean is I want to start with the MBR (boot0) and go on from there... I only have one *REAL* machine to work with which means I need to work with something like emulators/virtualbox-ose... I also want to do as many automated tests as possible (for example seeing if the installer copied the MBR [and later other stuff] correctly to the virtual HDD).... for this reason I have a few questions on vb (or perhaps QEMU if not possible in vb): 1. Can it be scripted? 2. Is there any documentation on the various virtual HDD formats and such (that way I can check the "physical" drive and not by indirect query)? Also can people give me some idea of a good general development/testing framework.... the one I have in mind so far is: 1. Write enough of the OS in FreeBSD to boot and give a command prompt and then develop using it (assume that there is a working compilor [note I am doing it completely in Java (note 1) and will be using either gjava (gcc) or writing my own compiler]) Notes: 1. Due to OS's needing to address physical RAM directly (DMA mapped I/O) I will be introducing some form of ptr's into java with the compiler or native ASM