From owner-freebsd-hackers Mon Jun 7 12:21: 8 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from mail.rdc1.sfba.home.com (ha1.rdc1.sfba.home.com [24.0.0.66]) by hub.freebsd.org (Postfix) with ESMTP id EA4D5157A1 for ; Mon, 7 Jun 1999 12:20:57 -0700 (PDT) (envelope-from adsharma@c62443-a.frmt1.sfba.home.com) Received: from c62443-a.frmt1.sfba.home.com ([24.0.69.165]) by mail.rdc1.sfba.home.com (InterMail v4.01.01.00 201-229-111) with ESMTP id <19990607192056.NKJJ8807.mail.rdc1.sfba.home.com@c62443-a.frmt1.sfba.home.com>; Mon, 7 Jun 1999 12:20:56 -0700 Received: (from adsharma@localhost) by c62443-a.frmt1.sfba.home.com (8.8.7/8.8.7) id MAA12933; Mon, 7 Jun 1999 12:20:56 -0700 To: Christoph Kukulies Cc: hackers@FreeBSD.ORG Subject: Re: linux and freebsd kernels conceptually different? References: <199906071558.RAA17138@gil.physik.rwth-aachen.de> From: Arun Sharma Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Date: 07 Jun 1999 12:20:56 -0700 In-Reply-To: Christoph Kukulies's message of "Mon, 7 Jun 1999 17:58:47 +0200 (CEST)" Message-ID: Lines: 52 X-Mailer: Gnus v5.5/Emacs 20.3 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Christoph Kukulies writes: Comments from someone who's studied Linux for a while and has started studying FreeBSD only recently. > Could one say that Linux vs. FreeBSD kernels are conceptually > different what task scheduling, queueing, interrupt handling, > driver architecture, buffer caching, vm etc. is concerned? - task scheduling - Linux uses a linear linked list of runnable processes and recalculates priorities on every reschedule. - FreeBSD uses multilevel runqueues - Buffer caching - Linux hasn't achieved the perfect integration between the page cache and the buffer cache yet. write(2) goes through the buffer cache, read(2) goes through the page cache. Also, buffers are cached based on basis. But an IOlite style buffer caching scheme is in the works. - FreeBSD seems to avoid data replication by a better integration of the page and buffer caches. Also, buffers are cached based on basis - VM - Linux uses a 3 level page table as a generic data structure at the low level and data structures similar to SVR4 for high level mapping info. Also, Linux avoids chaining of ptes mapping the same data completely. - FreeBSD separates machine dependent and independent data using the pmap abstraction. FreeBSD also uses pv_table to keep track of multiple ptes mapping same data. FreeBSD VM is based on Mach. But for the most part, they are based on the same principles documented in early UNIX internals text books. So it would be unfair to say they are conceptually very different. I'd say most of the differences are in implementation and development methodology. Linux camp seems to be proud of breaking traditions and concepts invented after lengthy research. I haven't seen that many iconoclasts in my short encounter with FreeBSD. Hope that helps, -Arun To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message