Date: Wed, 22 Jan 1997 12:21:34 +1030 (CST) From: Michael Smith <msmith@atrad.adelaide.edu.au> To: hosokawa@mt.cs.keio.ac.jp (HOSOKAWA Tatsumi) Cc: jkh@time.cdrom.com, keithl@wakko.gil.net, chat@freebsd.org, config@freebsd.org, hosokawa@mt.cs.keio.ac.jp Subject: Re: Cursing the sky (was: Commerical applications ...) Message-ID: <199701220151.MAA11082@genesis.atrad.adelaide.edu.au> In-Reply-To: <199701211802.DAA22042@lenlen.mt.cs.keio.ac.jp> from HOSOKAWA Tatsumi at "Jan 22, 97 03:02:57 am"
next in thread | previous in thread | raw e-mail | index | archive | help
HOSOKAWA Tatsumi stands accused of saying:
>
> I think FreeBSD's kernel config system is far better than irritating :-)
> "make config" of Slackware Linux, but I think it has following
> problems, and introducing the formal "metaconfig" file can solve these
> problems.
I agree entirely with this sentiment; a formal description of the
kernel configuration (preferably split across multiple files) is
highly desirable.
> 1. Users have to learn some rules of config files. Yes, the syntax of
> config file is fairly simple, but the semantics is too difficult.
> I think if there's an interactive menu system of kernel
> configuration utility more smart than Linux's menuconfig and
> xconfig, it helps novices much.
Agreed.
> 2. Dependency and exclusiveness between options, devices, etc. are
> only decribed in natural language. Kernel configuration utility
> can't use these information. Formal description is needed.
Goes without saying really 8)
> (note that following samplese are pseudo-code, I've not implemented
> the translater yet.)
>
> Example 1: dependency
>
> <OPTIONS>DDB
> <COM>
> Enable the kernel debugger.
> </COM>
> </OPTIONS>
I really don't like that much. How about :
# file : kern_options.kci
option "DDB" {
description "Enables the kernel debugger"
manref "ddb(4)"
}
option "DDB_UNATTENDED" {
description "Don't drop into DDB for a panic. Intended for"
description "unattended operation where you may want to"
description "invoke DDB from the console, but still want"
description "the machine to recover from a panic"
requires {option DDB}
}
option "MATH_EMULATE" {
description "Support for systems with no math coprocessor"
description "(standard version)"
excludes {option GPL_MATH_EMULATE}
header opt_math_emulate.h
}
option "GPL_MATH_EMULATE" {
description "Support for systems with no math coprocessor"
description "(Improved but GPL-licensed version)"
excludes {option MATH_EMULATE}
header opt_math_emulate.h
}
I realise that we're arguing for syntaxes friendly to our chosen
implementation languages here; I just feel that the SGML-like syntax
is a lot harder to work with.
> 3. I want to support I18N for kernel config utility, but current
> config system can't support these feature. For example, some
> hackers in Japan translated comments of 2.2-BETA and 3.0-CURRENT
> LINT file into Japanese, but I think such approach is not so smart.
That's a real challenge. Short of a message catalog for every option
file, I can't see how you could do that.
> demands. The definitions of "flags" and "options" of devices
> should be described in formal way.
Definitely :
# file sio_driver.kci
driver "sio" {
description "Serial driver for 8250/16x50 UARTs"
file i386/isa/sio.c
file i386/isa/sioreg.h
file i386/isa/ic/ns16550.h
file i386/isa/ic/esp.h
manref "sio(4)"
flag { mask 0x001
value 1
description "enable shared IRQ"
}
flag { mask 0x0002
value 1
description "disable FIFO"
}
flag { mask 0x0004
value 0
description "has AST/4 compatible IRQ control register"
}
flag { mask 0x0008
value 1
description "fast recovery from lost output interrupts"
}
flag { mask 0x0080
value 1
description "enable probe diagnostics"
}
flag { mask 0xff00
range {0 0xff}
description "device number of master port"
}
vector siointr
irq all
port *8
iosize 8
}
option "COM_ESP" {
description "Enable support for Hayes ESP cards"
requires {driver sio}
associate {driver sio}
}
(the *8 value for 'port' would mean "multiple of 8")
By using multiple files, adding/removing drivers becomes easier.
Parsing this sort of configuration file is trivial with Tcl or in C,
and I expect that Perl would make quick work of it as well.
> HOSOKAWA, Tatsumi
Note that this is all pandering to making the status-quo easier, rather
than chasing some blue-sky future. Is it the right thing to do?
--
]] Mike Smith, Software Engineer msmith@gsoft.com.au [[
]] Genesis Software genesis@gsoft.com.au [[
]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[
]] realtime instrument control. (ph) +61-8-8267-3493 [[
]] Unix hardware collector. "Where are your PEZ?" The Tick [[
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701220151.MAA11082>
