From owner-freebsd-embedded@freebsd.org Tue Mar 8 23:23:32 2016 Return-Path: Delivered-To: freebsd-embedded@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 75D73AC77A3 for ; Tue, 8 Mar 2016 23:23:32 +0000 (UTC) (envelope-from jeclark2006@aim.com) Received: from omr-m007e.mx.aol.com (omr-m007e.mx.aol.com [204.29.186.9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 35464B98 for ; Tue, 8 Mar 2016 23:23:32 +0000 (UTC) (envelope-from jeclark2006@aim.com) Received: from mtaout-mcd01.mx.aol.com (mtaout-mcd01.mx.aol.com [172.26.223.205]) by omr-m007e.mx.aol.com (Outbound Mail Relay) with ESMTP id 85FC938000AF; Tue, 8 Mar 2016 18:23:30 -0500 (EST) Received: from [10.0.0.224] (datron9.dtwc.com [207.137.9.194]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mtaout-mcd01.mx.aol.com (MUA/Third Party Client Interface) with ESMTPSA id 2FA4538000081; Tue, 8 Mar 2016 18:23:28 -0500 (EST) Content-Type: text/plain; charset=windows-1251 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: ? about kernel size.. From: John Clark In-Reply-To: <1457478889.1406.50.camel@freebsd.org> Date: Tue, 8 Mar 2016 15:23:28 -0800 Cc: Markus Hitter , freebsd-embedded@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <06F91A0C-648B-49B2-88C1-86FDD5D8B30F@aim.com> References: <1457473674.1406.46.camel@freebsd.org> <56DF513E.9000405@jump-ing.de> <938133EE-CCEE-4F08-BB78-8227D9D0C6EC@aim.com> <1457478889.1406.50.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.1878.6) x-aol-global-disposition: G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mx.aim.com; s=20150623; t=1457479410; bh=bX7KsylWUP7YqNSE3Jn/Q8nZiX5rdsbT+JvFqLgA+TI=; h=From:To:Subject:Message-Id:Date:Mime-Version:Content-Type; b=MgdG557ixFq14TnOgXpMeNQiEZlHhS5niMfTxWC+QWYXA6r3faEU6j9SG0XB9ardR 8+sQKjd6/HoU+ynsEMdJ3Fxdb99AI/RJ6r7M26smlxR/Iuj77W74dtrSsE4ozzqzmO 9CaqiuxjualOr9CIAvSV/M3QuSKUxotxiq8fYvT4= x-aol-sid: 3039ac1adfcd56df5ef01da1 X-AOL-IP: 207.137.9.194 X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2016 23:23:32 -0000 On Mar 8, 2016, at 3:14 PM, Ian Lepore wrote: > Jeez, really? This thread is going to be hijacked to discuss the > theoretical possiblity of running on 40 year old hardware? >=20 > Unbelievable. >=20 > =97 Ian Some one trying to run something like FreeBSD on a non-MMU processor, is = going =85 40 years back in time(technically the 286 is a 35 or so year = old design=85)=85 Demand the project has at least a serviceable MMU=85 A few years ago, the boss got the big idea to use an 8051 based = processor board for a system controller unit=85 ugh=85 I started my career using the 8048 and the =91graduated=92 to the 8051=85 = then moved to a different company to work on =91real=92 machines=85 = PDP-11s=85 In way the system controller was an not so pleasant walk down memory = lane=85 John Clark. >=20 > On Tue, 2016-03-08 at 15:09 -0800, John Clark via freebsd-embedded > wrote: >> Not to barge in to your discussion=85 but yes there were Unix = variants >> that worked on the 286. Xenix was one such OS. Xenix being >> Microsoft=92s idea of avoiding the Unix name=85 >>=20 >> Originally Xenix ran on PDP-11, and was ported to other machines that >> have long passed into the oblivion of technological Hell. >>=20 >> As for =91preemetive multitasking=85 of course one can run a = preemptive >> scheduler on almost any CPU that has a clock interrupt. >>=20 >> I wrote one for the 286 based on the kernel described in Douglas >> Comer=92s =93Xinu=94 book. >>=20 >> Products with that hack where produced for about 8 years=85 in the >> early-mid-80s. I wrote it such that it would run in a DOS box and >> allow for machine control of various robotic systems for industrial >> inspection machines. >>=20 >> In any case one can develop a multitasking kernel to run in a non-MMU >> based system=85 just lends itself to crapping out on the least >> provocation=85 >>=20 >> What an MMU provides is hardware =91address translation=92 such that = the >> application can run in an =91virtual absolute=92 addressing space, >> have memory protection such that errant code can=92t clobber other >> tasks or the kernel, and also given appropriate devices, >> have =91swapping=92 for larger than real memory applications. >>=20 >> The 286 =91segment=92 registers gave a bit of =91translation=92 = capability in >> that one could address relative to the segment registers, and so, >> code and data could be place in available member and context switched >> would update the segment registers. >>=20 >> The segment registers were a crappy way of accessing memory if one >> had long linear arrays of data to process=85 such as image = processing=85 >> which happened to be the application of my work at the time=85 >>=20 >> And one could always implement an external MMU which was popular with >> the Motorola M68K which was sort of the contemporary alternative to >> the Intel x86 line. >>=20 >> John Clark. >>=20 >> On Mar 8, 2016, at 2:25 PM, Markus Hitter wrote: >>=20 >>> Am 08.03.2016 um 22:56 schrieb Brad Walker: >>>> But, are you saying that no engineering has been done on this yet >>>> OR no >>>> amount of engineering could make it work? >>>=20 >>> If I recall correctly from some 25 years ago, memory address >>> mapping >>> (which is what a MMU does) is mandatory for preemtive multitasking. >>> An >>> i286 can't run a Unix-like OS either. >>>=20 >>>=20 >>> In 2008 I tried to get FreeBSD down to its minimum, too. The >>> success >>> post is about all what's left today: >>>=20 >>> https://lists.freebsd.org/pipermail/freebsd-embedded/2008-October/0 >>> 00604.html >>>=20 >>> The task to get there is simple and straightforward, but time >>> consuming: >>> go step by step through the kernel configuration to disable >>> whatever you >>> can spare. Configure, build, try, repeat. If you need a small >>> entire >>> system, do the same for packages and every single file you copy >>> into >>> your system image. >>>=20 >>>=20 >>> Markus >>>=20