Module Name:    src
Committed By:   christos
Date:           Thu Aug  4 07:22:42 UTC 2016

Added Files:
        src/sys/arch/amd64/conf: MODULAR

Log Message:
An attempt to create a fully modular kernel by including GENERIC and
undefining all the drivers we have modules for. This is done to reduce
the kernel footprint for DTRACE and also to test that the modularized
drivers work. Current issues:

1. builtin drivers can't depend on modularized drivers (the modularized
   drivers are attempted to load as builtins).
2. there is no way to "no define" drivers
3. it is not always obvious by their names which drivers/options correspond
   to which modules.
4. right now critical drivers that would need to be pre-loaded (ffs,
   exec_elf64) are still built-in so that we don't need to alter the boot
   blocks to boot.

Ideally modstat should show none of the drivers as built-in but we are far
from that.


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/arch/amd64/conf/MODULAR

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/arch/amd64/conf/MODULAR
diff -u /dev/null src/sys/arch/amd64/conf/MODULAR:1.1
--- /dev/null	Thu Aug  4 03:22:42 2016
+++ src/sys/arch/amd64/conf/MODULAR	Thu Aug  4 03:22:41 2016
@@ -0,0 +1,114 @@
+# $NetBSD: MODULAR,v 1.1 2016/08/04 07:22:41 christos Exp $
+#
+# Try to exclude all the drivers in GENERIC that have been modularized
+# XXX: incomplete
+
+include "arch/amd64/conf/GENERIC"
+options 	MODULAR		# new style module(7) framework
+options 	MODULAR_DEFAULT_AUTOLOAD
+
+no acpicpu*	at cpu?
+no est0		at cpu0
+no powernow0	at cpu0
+no vmt0		at cpu0
+
+no options 	COMPAT_15	# NetBSD 1.5,
+no options 	COMPAT_16	# NetBSD 1.6,
+no options 	COMPAT_20	# NetBSD 2.0,
+no options 	COMPAT_30	# NetBSD 3.0,
+no options 	COMPAT_40	# NetBSD 4.0,
+no options 	COMPAT_50	# NetBSD 5.0,
+no options 	COMPAT_60	# NetBSD 6.0, and
+no options 	COMPAT_70	# NetBSD 7.0 binary compatibility.
+no options 	COMPAT_43	# and 4.3BSD
+#options 	COMPAT_386BSD_MBRPART # recognize old partition ID
+
+no options 	COMPAT_OSSAUDIO
+no options 	COMPAT_NETBSD32
+no options 	COMPAT_LINUX
+no options 	COMPAT_LINUX32	# req. COMPAT_LINUX and COMPAT_NETBSD32
+no options 	EXEC_ELF32
+no options 	COMPAT_BSDPTY	# /dev/[pt]ty?? ptys.
+
+no options	SYSVMSG		# System V-like message queues
+no options	SYSVSEM		# System V-like semaphores
+no options	SYSVSHM		# System V-like memory sharing
+
+# XXX: for now
+#no file-system 	FFS		# UFS
+no file-system	MFS		# memory file system
+no file-system 	NFS		# Network File System client
+no file-system	TMPFS		# Efficient memory file-system
+no file-system	EXT2FS		# second extended file system (linux)
+no file-system	LFS		# log-structured file system
+no file-system	NTFS		# Windows/NT file system (experimental)
+no file-system	CD9660		# ISO 9660 + Rock Ridge file system
+no file-system	MSDOSFS		# MS-DOS file system
+no file-system	FDESC		# /dev/fd
+no file-system	KERNFS		# /kern
+no file-system	NULLFS		# loopback file system
+no file-system	OVERLAY		# overlay file system
+no file-system	PROCFS		# /proc
+no file-system	PUFFS		# Userspace file systems (e.g. ntfs-3g & sshfs)
+no file-system	SMBFS		# experimental - CIFS; also needs nsmb (below)
+no file-system	UMAPFS		# NULLFS + uid and gid remapping
+no file-system	UNION		# union file system
+no file-system	CODA		# Coda File System; also needs vcoda (below)
+no file-system	PTYFS		# /dev/ptm support
+
+no options 	PPP_BSDCOMP	# BSD-Compress compression support for PPP
+no options 	PPP_DEFLATE	# Deflate compression support for PPP
+
+no acpiacad*	at acpi?		# ACPI AC Adapter
+no acpibat*	at acpi?		# ACPI Battery
+no acpibut*	at acpi?		# ACPI Button
+no acpifan*	at acpi?		# ACPI Fan
+no acpilid*	at acpi?		# ACPI Lid Switch
+no acpitz* 	at acpi?		# ACPI Thermal Zone
+no acpivga*	at acpi?		# ACPI Display Adapter
+no acpiwdrt*	at acpi?		# ACPI Watchdog Resource Table
+no acpiwmi*	at acpi?		# ACPI WMI Mapper
+
+no options	NFSSERVER
+
+no axe*		at uhub?
+no rum*		at uhub?
+no urtwn*	at uhub?
+no urtw*	at uhub?
+no run*		at uhub?
+no athn*	at uhub?
+
+no pseudo-device 	crypto			# /dev/crypto device
+no pseudo-device	swcrypto		# software crypto implementation
+
+# disk/mass storage pseudo-devices
+no pseudo-device	ccd			# concatenated/striped disk devices
+no pseudo-device	cgd			# cryptographic disk devices
+no pseudo-device	raid			# RAIDframe disk driver
+no pseudo-device	fss			# file system snapshot device
+no pseudo-device	putter			# for puffs and pud
+
+no pseudo-device	vnd			# disk-like interface to files
+
+# network pseudo-devices
+no pseudo-device	bpfilter		# Berkeley packet filter
+no pseudo-device	ipfilter		# IP filter (firewall) and NAT
+no pseudo-device	npf			# NPF packet filter
+
+#
+# accept filters
+no pseudo-device   accf_data		# "dataready" accept filter
+no pseudo-device   accf_http		# "httpready" accept filter
+
+# miscellaneous pseudo-devices
+no pseudo-device	clockctl		# user control of clock subsystem
+no pseudo-device	vcoda			# coda minicache <-> venus comm.
+
+# a pseudo device needed for SMBFS
+no pseudo-device	nsmb			# experimental - SMB requester
+
+# pseudo audio device driver
+no pseudo-device	pad
+
+# userland interface to drivers, including autoconf and properties retrieval
+no pseudo-device	drvctl

Reply via email to