From owner-freebsd-questions@FreeBSD.ORG Wed Mar 30 05:10:08 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EFAE416A4CE for ; Wed, 30 Mar 2005 05:10:08 +0000 (GMT) Received: from smtp11.wanadoo.fr (smtp11.wanadoo.fr [193.252.22.31]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70AA143D2D for ; Wed, 30 Mar 2005 05:10:08 +0000 (GMT) (envelope-from atkielski.anthony@wanadoo.fr) Received: from me-wanadoo.net (unknown [127.0.0.1]) by mwinf1103.wanadoo.fr (SMTP Server) with ESMTP id A72051C0009D for ; Wed, 30 Mar 2005 07:10:07 +0200 (CEST) Received: from pix.atkielski.com (ASt-Lambert-111-2-1-3.w81-50.abo.wanadoo.fr [81.50.80.3]) by mwinf1103.wanadoo.fr (SMTP Server) with ESMTP id 7FB3D1C0009C for ; Wed, 30 Mar 2005 07:10:07 +0200 (CEST) X-ME-UUID: 20050330051007523.7FB3D1C0009C@mwinf1103.wanadoo.fr Date: Wed, 30 Mar 2005 07:10:07 +0200 From: Anthony Atkielski X-Priority: 3 (Normal) Message-ID: <665515038.20050330071007@wanadoo.fr> To: freebsd-questions@freebsd.org In-Reply-To: <1112144624.661.38.camel@orker.orbweavers.co.uk> References: <42480F8B.1060405@makeworld.com> <42496060.1060404@makeworld.com><42496992.7020800@makeworld.com> <42498D19.60209@makeworld.com> <813611053.20050329205032@wanadoo.fr> <785092730.20050329231636@wanadoo.fr> <1112144624.661.38.camel@orker.orbweavers.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Re: Anthony's drive issues.Re: ssh password delay X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: freebsd-questions@freebsd.org List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2005 05:10:09 -0000 Martin McCann writes: > Please explain this to me - I have had a lot of experience in OS design, > and would like you, who obviously from you remarks, have extensive OS > design knowledge, point out to me how a HAL makes an OS inherintly more > stable than a system that writes its drivers for a particular peice of > hardware, without pretence it will cope with differetn pieces of > hardware? There's no relationship between a HAL and the creation of drivers for specific pieces of hardware. Drivers are always created for specific hardware, but they may or may not be largely written in assembly language. Those that are not are obviously using a certain degree of hardware abstraction. In general, a HAL limits the amount of assembly-language programming required in the OS. Apart from the obvious advantage of improving portability, this also allows the OS to be built with less need for the scarce programmers who happen to be expert in assembly-language programming for a specific platform. High-level languages aren't inherently more reliable, but it's easier to find programmers who are expert in high-level languages than it is to find programmers who are specialists in specific assembly or machine languages. A HAL also diminishes performance and increases OS bloat, but today that is often considered an acceptable trade-off. Even so, extremely critical sections of code may still be written or rewritten in assembler, and of course the HAL itself is in assembler by definition. Writing the entire OS in assembler is acceptable (and extremely performant) _if_ you can find expert programmers to write it. In the old days, UNIX was considered a bit of an oddball because it effectively used hardware abstraction (by being written mostly in C), although it was not the first OS to do so. That made it slow compared to its contemporaries of similar functionality, too--whereas today it is fast and efficient compared to most other operating systems that postdate it. The hardware abstraction of being written in C was a key factor in making UNIX one of the most widely used operating systems in history. -- Anthony