# # Mach Operating System # Copyright (c) 1986 Carnegie-Mellon University # All rights reserved. The CMU software License Agreement # specifies the terms and conditions for use and redistribution. # ####################################################################### # # Master machine independent configuration file. # # Specific configuration files are created based on this and # the machine specific master file using the doconf script. # # Any changes to the master configuration files will affect all # other configuration files based upon it. # ####################################################################### # # To build a configuration, execute "doconf <configuration>." # Configurations are specified in the "Configurations:" section # of the MASTER and MASTER.* files as follows: # # <configuration> = [ <attribute0> <attribute1> ... <attributeN> ] # # Lines in the MASTER and MASTER.* files are selected based on # the attribute selector list, found in a comment at the end of # the line. This is a list of attributes separated by commas. # The "!" operator selects the line if none of the attributes are # specified. # # For example: # # <foo,bar> selects a line if "foo" or "bar" are specified. # <!foo,bar> selects a line if neither "foo" nor "bar" is # specified. # # Lines with no attributes specified are selected for all # configurations. # ####################################################################### # # STANDARD CONFIGURATION OPTIONS (select any combination) # # debug = extra kernel level debugging support # mach = Mach support # # EXPERIMENTAL CONFIGURATION OPTIONS (select any combination, carefully) # # host = host resource control support # # MULTI-PROCESSOR CONFIGURATION (select at most one) # # multi16 = enable 16 multi-processors # multi32 = enable 32 multi-processors # multi48 = enable 48 multi-processors # # SYSTEM SIZE CONFIGURATION (select exactly one) # # xlarge = extra large scale system configuration # large = large scale system configuration # medium = medium scale system configuration # small = small scale system configuration # xsmall = extra small scale system configuration # bsmall = special extra small scale system configuration # ####################################################################### # # Standard Mach Research Configurations: # -------- ---- -------- --------------- # # These are the default configurations that can be used by most sites. # They are used internally by the Mach project. # # MACH = [mach multi16 medium debug] # ####################################################################### # ident NeXT # obsolete timezone spec options TIMEZONE=0, PST=0 options QUOTA # # <quota> options INET # # <inet> options ABSOLUTETIME_SCALAR_TYPE options NEW_VM_CODE # # <newvm> options OLD_VM_CODE # # <!newvm> options HW_AST # Hardware ast support # <hw_ast> options HW_FOOTPRINT # Cache footprint support # <hw_foot> options CONFIG_LCTX # Login Context options MACH # Standard Mach features # <mach> options MACH_ASSERT # Compile in assertions # <mach_assert> options MACH_COMPAT # Vendor syscall compatibility # <mach> options MACH_COUNTERS # counters # <count> options MACH_DEBUG # IPC debugging interface # <mdebug> options MACH_FASTLINK # Fast symbolic links options MACH_FIXPRI # Fixed priority threads # <fixpri> options MACH_HOST # Mach host (resource alloc.) # <host> options MACH_IPC_COMPAT # Enable old IPC interface # <ipc_compat> options MACH_IPC_DEBUG # Enable IPC debugging calls # <ipc_debug> options MACH_IPC_TEST # Testing code/printfs # <ipc_test> options MACH_LDEBUG # Sanity-check simple locking # <test> options MACH_NP # Mach IPC support # <np> options MACH_NBC # No buffer cache # <nbc> options MACH_NET # Fast network access # <mach_net> options MACH_XP # external pager support # <xp> options NORMA_IPC # NORMA IPC support # <norma_ipc> options NORMA_DEVICE # NORMA unified device names # <norma_device> options NORMA_VM # NORMA virtual memory support # <norma_vm> options NORMA_TASK # NORMA task support # <norma_task> options NORMA_ETHER # NORMA across ethernet # <norma_ether> options SIMPLE_CLOCK # don't assume fixed tick # <simple_clock> options XPR_DEBUG # kernel tracing # <xpr_debug> options KDEBUG # kernel tracing # <kdebug> options DDM_DEBUG # driverkit-style tracing # <ddm_debug> options MACH_OLD_VM_COPY # Old vm_copy technology # <!newvm> options NO_DIRECT_RPC # for untyped mig servers # options IPX # ipx stack # <ipx> options EON # # <eon> options ISO # ISO stack # <iso> options LLC # 802.2 support # <llc> options LOOP # loopback support # <loop> options MROUTING # multicast routing # <mrouting> options ROUTING # routing # <routing> options NETMIBS # # <netmibs> options VLAN # # <vlan> options BOND # # <bond> options IPDIVERT # Divert sockets (for NAT) # <ipdivert> options IPFIREWALL # IP Firewalling (used by NAT) # <ipfirewall> options IPFIREWALL_FORWARD #Transparent proxy # <ipfirewall> options IPFIREWALL_DEFAULT_TO_ACCEPT # allow everything by default # <ipfirewall> options DUMMYNET # dummynet support # <dummynet> options TRAFFIC_MGT # traffic management support # <traffic_mgt> options IPFW2 # IP firewall (new version) # <ipfw2> options MULTICAST # Internet Protocol Class-D $ options TCPDEBUG # TCP debug # <tcpdebug> options RANDOM_IP_ID # random (not sequential) ip ids # <randomipid> options TCP_DROP_SYNFIN # Drop TCP packets with SYN+FIN set # <tcpdrop_synfin> options ICMP_BANDLIM # ICMP bandwidth limiting sysctl options IFNET_INPUT_SANITY_CHK # allow dlil/ifnet input sanity check # <ifnet_input_chk> options AUDIT # Security event auditing # <audit> options SYSV_SEM # SVID semaphores # <sysv_sem> options SYSV_MSG # SVID messages # <sysv_msg> options SYSV_SHM # SVID shared mem # <sysv_shm> options PANIC_INFO # want kernel panic info # <panic_info> options DEVELOPMENT # dev kernel # <development> # secure_kernel - secure kernel from user programs options SECURE_KERNEL # <secure_kernel> # # 4.4 general kernel # options SOCKETS # socket support # <inet, inet6, netat> options COMPAT_43_TTY # 4.3 BSD tty compat # <compat_43_tty> options DIAGNOSTIC # diagnostics # <diagnostic> options CONFIG_DTRACE # dtrace support # <config_dtrace> options GPROF # build profiling # <profile> options SENDFILE # sendfile # <sendfile> options NETWORKING # networking layer # <inet, inet6, netat> options CONFIG_FSE # file system events # <config_fse> options CONFIG_IMAGEBOOT # local image boot # <config_imageboot> options CONFIG_SOWUPCALL # SB_UPCALL on sowwakeup # <config_sowupcall> options CONFIG_FORCE_OUT_IFP # Force IP output to use an interface # <config_force_out_ifp> options CONFIG_MBUF_NOEXPAND # limit mbuf expansion # <config_mbuf_noexpand> options CONFIG_MBUF_JUMBO # jumbo cluster pool # <config_mbuf_jumbo> # # 4.4 filesystems # options FFS # Fast Filesystem Support # <ffs> options HFS # HFS/HFS+ support # <hfs> options FIFO # fifo support # <fifo> options UNION # union_fs support # <union> options FDESC # fdesc_fs support # <fdesc> options CD9660 # ISO 9660 CD-ROM support # <cd9660> options DEVFS # devfs support # <devfs> options JOURNALING # journaling support # <journaling> # # file system features # options QUOTA # file system quotas # <quota> options REV_ENDIAN_FS # Reverse Endian FS # <revfs> options NAMEDSTREAMS # named stream vnop support # <namedstreams> options CONFIG_VOLFS # volfs path support (legacy) # <config_volfs> # # NFS support # options NFSCLIENT # Be an NFS client # <nfsclient> options NFSSERVER # Be an NFS server # <nfsserver> # # AppleTalk Support # options NETAT # AppleTalk support # <netat> #options AURP_SUPPORT # AppleTalk Update Routing # <netat> # # Machine Independent Apple Features # options KERNSERV # kernel_server intarface # <kernserv> options MALLOCDEBUG # kernel malloc debugging # <mallocdebug> options DRIVERKIT # driverkit support # <driverkit> options KERNOBJC # Objective-C support # <kernobjc> options OBJCTEST # Objc internal test # <objctest> options KERNEL_STACK # MI kernel stack support # <kernstack> profile # build a profiling kernel # <profile> # # Point-to-Point Protocol support # pseudo-device ppp 2 # <ppp> # # IPv6 Support # options "INET6" # kernel IPv6 Support # <inet6> options IPSEC # IP security # <ipsec> options IPSEC_ESP # IP security # <ipsec> options "IPV6FIREWALL" # IPv6 Firewall Feature # <ipv6firewall> options "IPV6FIREWALL_DEFAULT_TO_ACCEPT" #IPv6 Firewall Feature # <ipv6firewall> #options "IPV6FIREWALL_VERBOSE" #IPv6 Firewall Feature # <ipv6firewall> pseudo-device gif 1 # <gif> pseudo-device dummy 2 # <dummy> pseudo-device faith 1 # <faith> pseudo-device stf 1 # <stf> options crypto # <ipsec,crypto> options ALLCRYPTO # <xlarge,large,medium> options randomipid # <inet,randomipid> options ZLIB # inflate/deflate support # <zlib> makeoptions LIBDRIVER = "libDriver_kern.o" # <libdriver> makeoptions LIBOBJC = "libkobjc.o" # <kernobjc> maxusers 64 # <xlarge> maxusers 50 # <large> maxusers 32 # <medium> maxusers 16 # <small> maxusers 8 # <xsmall> maxusers 2 # <bsmall> # # Multi-processor selection # pseudo-device cpus 64 # <multi64> pseudo-device cpus 32 # <multi32> pseudo-device cpus 16 # <multi16> pseudo-device cpus 2 # <multi2> pseudo-device cpus 1 # <!multi64,multi32,multi16,multi2> # # configurable kernel event related resources # options CONFIG_KN_HASHSIZE=64 # <medium,large,xlarge> options CONFIG_KN_HASHSIZE=48 # <small,xsmall> options CONFIG_KN_HASHSIZE=20 # <bsmall> # # configurable vfs related resources # CONFIG_VNODES - used to pre allocate vnode related resources # CONFIG_VNODE_FREE_MIN - mininmum number of free vnodes # CONFIG_NC_HASH - name cache hash table allocation # CONFIG_VFS_NAMES - name strings # # 263168 magic number for medium CONFIG_VNODES is based on memory # Number vnodes is (memsize/64k) + 1024 # This is the calculation that is used by launchd in tiger # we are clipping the max based on 16G # ie ((16*1024*1024*1024)/(64 *1024)) + 1024 = 263168; options CONFIG_VNODES=263168 # <large,xlarge> options CONFIG_VNODES=263168 # <medium> options CONFIG_VNODES=10240 # <small> options CONFIG_VNODES=1024 # <xsmall> options CONFIG_VNODES=512 # <bsmall> options CONFIG_VNODE_FREE_MIN=500 # <large,xlarge> options CONFIG_VNODE_FREE_MIN=300 # <medium> options CONFIG_VNODE_FREE_MIN=200 # <small> options CONFIG_VNODE_FREE_MIN=100 # <xsmall> options CONFIG_VNODE_FREE_MIN=75 # <bsmall> options CONFIG_NC_HASH=5120 # <large,xlarge> options CONFIG_NC_HASH=4096 # <medium> options CONFIG_NC_HASH=2048 # <small,xsmall> options CONFIG_NC_HASH=1024 # <bsmall> options CONFIG_VFS_NAMES=5120 # <large,xlarge> options CONFIG_VFS_NAMES=4096 # <medium> options CONFIG_VFS_NAMES=3072 # <small,xsmall> options CONFIG_VFS_NAMES=2048 # <bsmall> # # configurable kauth credential related resources # options KAUTH_CRED_PRIMES_COUNT=7 # <medium,large,xlarge> options KAUTH_CRED_PRIMES_COUNT=3 # <bsmall,xsmall,small> options KAUTH_CRED_PRIMES="{97, 241, 397, 743, 1499, 3989, 7499}" # <medium,large,xlarge> options KAUTH_CRED_PRIMES="{5, 17, 97}" # <bsmall,xsmall,small> # # configurable options for minumum number of buffers for kernel memory # options CONFIG_MIN_NBUF=256 # <medium,large,xlarge> options CONFIG_MIN_NBUF=128 # <small> options CONFIG_MIN_NBUF=80 # <xsmall> options CONFIG_MIN_NBUF=64 # <bsmall> options CONFIG_MIN_NIOBUF=128 # <medium,large,xlarge> options CONFIG_MIN_NIOBUF=64 # <xsmall,small> options CONFIG_MIN_NIOBUF=32 # <bsmall> # # set maximum space used for packet buffers # options CONFIG_NMBCLUSTERS="((1024 * 1024) / MCLBYTES)" # <large,xlarge> options CONFIG_NMBCLUSTERS="((1024 * 512) / MCLBYTES)" # <medium> options CONFIG_NMBCLUSTERS="((1024 * 256) / MCLBYTES)" # <bsmall,xsmall,small> # # Configure size of TCP hash table # options CONFIG_TCBHASHSIZE=4096 # <medium,large,xlarge> options CONFIG_TCBHASHSIZE=128 # <xsmall,small,bsmall> # # configurable async IO options # CONFIG_AIO_MAX - system wide limit of async IO requests. # CONFIG_AIO_PROCESS_MAX - process limit of async IO requests. # CONFIG_AIO_THREAD_COUNT - number of async IO worker threads created. # options CONFIG_AIO_MAX=360 # <xlarge> options CONFIG_AIO_MAX=180 # <large> options CONFIG_AIO_MAX=90 # <medium> options CONFIG_AIO_MAX=45 # <small> options CONFIG_AIO_MAX=20 # <xsmall> options CONFIG_AIO_MAX=10 # <bsmall> options CONFIG_AIO_PROCESS_MAX=64 # <xlarge> options CONFIG_AIO_PROCESS_MAX=32 # <large> options CONFIG_AIO_PROCESS_MAX=16 # <medium> options CONFIG_AIO_PROCESS_MAX=12 # <small> options CONFIG_AIO_PROCESS_MAX=8 # <xsmall> options CONFIG_AIO_PROCESS_MAX=4 # <bsmall> options CONFIG_AIO_THREAD_COUNT=16 # <xlarge> options CONFIG_AIO_THREAD_COUNT=8 # <large> options CONFIG_AIO_THREAD_COUNT=4 # <medium> options CONFIG_AIO_THREAD_COUNT=3 # <small> options CONFIG_AIO_THREAD_COUNT=2 # <xsmall,bsmall> # # configurable kernel related resources (CONFIG_THREAD_MAX needs to stay in # sync with osfmk/conf/MASTER until we fix the config system...) todo XXX # options CONFIG_THREAD_MAX=2560 # <medium,large,xlarge> options CONFIG_THREAD_MAX=1536 # <small,xsmall> options CONFIG_THREAD_MAX=1024 # <bsmall> options CONFIG_MAXVIFS=32 # <medium,large,xlarge> options CONFIG_MAXVIFS=16 # <small,xsmall> options CONFIG_MAXVIFS=2 # <bsmall> options CONFIG_MFCTBLSIZ=256 # <medium,large,xlarge> options CONFIG_MFCTBLSIZ=128 # <small,xsmall> options CONFIG_MFCTBLSIZ=16 # <bsmall> # # configurable kernel - use these options to strip strings from panic # and printf calls. # no_panic_str - saves around 50K of kernel footprint. # no_printf_str - saves around 45K of kernel footprint. # options CONFIG_NO_PANIC_STRINGS # <no_panic_str> options CONFIG_NO_PRINTF_STRINGS # <no_printf_str> options CONFIG_NO_KPRINTF_STRINGS # <no_kprintf_str> # # configurable kernel - general switch to say we are building for an # embedded device # options CONFIG_EMBEDDED # <config_embedded> # # Ethernet (ARP) # pseudo-device ether # <networking,inet,inet6,netat> # # Network loopback device # pseudo-device loop # <networking,inet,inet6,netat> # # UCB pseudo terminal service # pseudo-device pty 512 init pty_init # <xlarge> pseudo-device pty 256 init pty_init # <large> pseudo-device pty 128 init pty_init # <medium> pseudo-device pty 48 init pty_init # <small> pseudo-device pty 16 init pty_init # <xsmall> pseudo-device pty 8 init pty_init # <bsmall> # # Cloning pseudo terminal service # pseudo-device ptmx 1 init ptmx_init # # vnode device # pseudo-device vndevice 16 init vndevice_init # <xlarge> pseudo-device vndevice 8 init vndevice_init # <large> pseudo-device vndevice 4 init vndevice_init # <medium> pseudo-device vndevice 3 init vndevice_init # <small> pseudo-device vndevice 2 init vndevice_init # <bsmall> # # memory device pseudo-device mdevdevice 1 init mdevinit # # # packet filter device # pseudo-device bpfilter 4 init bpf_init # <networking,inet,inet6,netat> # # fsevents device pseudo-device fsevents 1 init fsevents_init # <config_fse> # # shim to "linux" mach disk drivers (mach drivers must also be turned on) # # now using iokit disk shim, this is code is obsolete #pseudo-device diskshim pseudo-device random 1 init random_init pseudo-device dtrace 1 init dtrace_init # <config_dtrace> pseudo-device helper 1 init helper_init # <config_dtrace> pseudo-device lockstat 1 init lockstat_init # <config_dtrace> pseudo-device sdt 1 init sdt_init # <config_dtrace> pseudo-device systrace 1 init systrace_init # <config_dtrace> pseudo-device fbt 1 init fbt_init # <config_dtrace> pseudo-device profile_prvd 1 init profile_init # <config_dtrace>