بررسی فایل پیکربندی هسته

تاریخچه FreeBSD

قالب این فایل بسیار ساده است. هر خط از یک کلیدواژه به همراه یک یا چند آرگومان تشکیل می‌شود. برای سادگی بیشتر، معمولا هر خط تنها یک آرگومان می‌گیرد. هر چیزی که بعد از کاراکتر # قرار گیرد به عنوان توضیح تفسیر شده و نادیده گرفته می‌شود. قرار دادن این کاراکتر در ابتدای خطوط، باعث نادیده گرفته شدن کل آن خط خواهد شد. در ادامه کلیدواژه های این فایل را بررسی می‌کنیم.

دایرکتیوی به نام include وجود دارد که برای درج یک فایل پیکربندی دیگر مورد استفاده قرار می‌گیرد. یعنی شما می‌توانید دیگر فایل‌ها را به صورت منطقی در فایل پیکربندی خود قرار دهید. مثلا اگر می‌خواهید تغییرات کوچکی در کرنل GENERIC اعمال کنید، می‌توانید به صورت زیر عمل کنید:

include GENERIC
ident MYKERNEL
options         IPFIREWALL
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVERT

بیشتر افراد استفاده از این روش را ترجیح می‌دهند؛ چون لازم نیست کل فایل پیکربندی را مجددا بازنویسی کنند.

برای ساخت یک فایل که دربرگیرنده تمام گزینه‌ها باشد، دستور زیر را توسط کاربر ریشه اجرا کنید:

# cd /usr/src/sys/i386/conf && make LINT

در ادامه گزینه‌ها و دایرکتیوهای فایل GENERIC را بررسی می‌کنیم.

machine		i386

این خط معماری ماشین را مشخص می‌کند. می تواند یکی از مقادیر amd64, i386, ia64, pc98, powerpc یا sparc64 را بگیرد.

cpu          I486_CPU
cpu          I586_CPU
cpu          I686_CPU

خطوط بالا نوع پردازنده سیستم شما را مشخص می‌کنند. ممکن است چند نمونه مختلف از این خط داشته باشید (برای موقعی که مطمئن نیستید از چه نوع پردازنده‌ای استفاده می‌کنید) اما برای ساخت یک هسته سفارشی، بهتر است خط مربوط به پردازنده خود را قرار داده و دیگر خطوط را پاک کنید. برای اینکه نوع پردازنده خود را تشخیص دهید، فایل /var/run/dmesg.boot را چک کنید.

ident          GENERIC

با استفاده از کلیدواژه ident می توانید نام دلخواهی را برای هسته خود انتخاب کنید. هسته شما با این نام شناسایی خواهد شد. مثلا در مثال قبلی نام MYKERNEL را برای هسته خود برگزیدیم. این نام در هنگام بوت شدن هسته مورد نظر هم چاپ می‌شود. بنابراین بهتر است یک نام متفاوت برای این هسته انتخاب کنید تا بتوانید آن را از هسته معمول خود تشخیص دهید.

#To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.
نکته: فایل device.hints در هنگام آغاز به کار سیستم توسط بوت‌لودر خوانده شده و محتویات آن برای هسته ارسال می‌شود. این فایل دربرگیرنده متغیرهای مختلفی برای کنترل بوت شدن هسته است.

مکان پیش فرض این فایل در /boot/device.hints قرار دارد. می توان به جای وارد کردن تنظیمات در این فایل، آنها را مستقیما و به صورت ثابت در هسته قرار داد. بنابراین دیگر احتیاجی به ایجاد این فایل نخواهید داشت.

options          SCHED_ULE         # ULE scheduler

زمان بند پیش فرض سیستم را مشخص می‌کند. این خط را پاک نکنید.

options          INET              # InterNETworking

پشتیبانی از شبکه را فعال می‌کند. این خط را پاک نکنید؛ حتی اگر هیچ احتیاجی به شبکه ندارید. بیشتر برنامه‌ها برای درست کار کردن حداقل به کارت شبکه loopback احتیاج دارند. (مثل X11) بنابراین وجود این گزینه لازم است.

options          INET6             # IPv6 communications protocols

این خط پشتیبانی از پروتکل IPv6 را فعال می‌کند.

options          FFS               # Berkeley Fast Filesystem

اگر قرار است FreeBSD را از هارد دیسک بوت کنید، این خط را نگه دارید.

options          SOFTUPDATES       # Enable FFS Soft Updates support

این گزینه قابلیت Soft Updates را در هسته فعال می‌کند که این کار باعث می‌شود اطلاعات با سرعت بیشتری بر روی دیسک نوشته شوند. البته این قابلیت باید در دیسک مورد نظر هم فعال باشد و فعال کردن آن در اینجا به تنهایی کافی نیست. برای اینکه بفهمید این قابلیت در دیسک فعال است یا نه خروجی دستور mount را ببینید. اگر گزینه soft-updates در خروجی موجود بود، یعنی این قابلیت در دیسک هم فعال است. اما اگر این گزینه در خروجی وجود نداشت، باید آن را فعال کنید. برای فعال کردن این قابلیت می توانید از دستور tunefs (برای فایل‌سیستم‌های موجود) و دستور newfs (برای فعال کردن در هنگام ساخت فایل‌سیستم جدید) استفاده کنید.

options          UFS_ACL           # Support for access control lists

این خط پشتیبانی از Access Control List یا همان ACL ها را فعال می‌کند. ACL ها به طور پیش فرض فعال هستند. اگر قبلا در فایل‌سیستمی از ACL ها استفاده کرده‌اید، نباید پشتیبانی از ACL را در هسته غیرفعال کنید.

options          UFS_DIRHASH       # Improve performance on big directories

این گزینه عملکرد سیستم را در هنگام کار با دایرکتوری‌های بزرگ بهبود می‌بخشد. معمولا نباید این گزینه را غیرفعال کنید. در سیستم‌هایی که سرعت دسترسی به دیسک زیاد مهم نیست (مثل فایروال‌ها) می توان آن را غیر فعال کرد.

options          NFSCLIENT         # Network Filesystem Client
options          NFSSERVER         # Network Filesystem Server
options          NFS_ROOT          # NFS usable as /, requires NFSCLIENT

این خطوط پشتیبانی از فایل سیستم شبکه‌ای یا همان Network File System را فعال می‌کنند.

options          MSDOSFS           # MSDOS Filesystem

این خط پشتیبانی از فایل‌سیستم MS-DOS را فعال می‌کند. در صورتی که قصد ندارید این نوع فایل‌سیستم را در هنگام بوت سیستم mount کنید، می توانید این خط را غیر فعال کنید. هر وقت که فایل‌سیستمی از این نوع را مونت کردید، این ماژول هم به صورت خودکار بارگذاری می‌شود.

options          CD9660            # ISO 9660 Filesystem

این خط پشتیبانی از فایل سیستم ISO9660 یا همان cd9660 را فعال می‌کند. اگر در رایانه خود درایو CDROM ندارید یا به ندرت از آن استفاده می‌کنید، می‌توانید این خط را پاک کنید. وقتی که یک CD را مونت کردید، این ماژول هم به صورت خودکار بارگذاری می‌شود. سی دی‌های صوتی یا همان Audio CD ها به این فایل‌سیستم احتیاج ندارند.

options          PROCFS            # Process filesystem (requires PSEUDOFS)

این خط پشتیبانی از procfs را فعال می‌کند. procfs یک فایل‌سیستم مجازی است که دربرگیرنده اطلاعاتی درباره پروسه‌های در حال اجرا در سیستم می‌باشد. این فایل‌سیستم به برنامه‌هایی مثل ps اجازه‌می‌دهد تا اطلاعات بیشتری را در اختیار شما قرار دهند. در بیشتر مواقع احتیاجی به این فایل‌سیستم نیست و بیشتر برنامه‌ها می‌توانند بدون این فایل‌سیستم به کار خود ادامه دهند. البته این گزینه خود به گزینه PSEUDOFS وابسته است.

options          PSEUDOFS          # Pseudo-filesystem framework

پشتیبانی از فایل‌سیستم‌های مجازی مثل procfs را فعال می‌کند. اگر قرار است از procfs استفاده کنید، این گزینه را هم باید فعال کنید.

options          GEOM_PART_GPT     # GUID Partition Tables.

این خط پشتیبانی از GPT یا GUID Partition Table را فعال می‌کند. با استفاده از GPT می‌توانید تعداد زیادی پارتیشن در یک دیسک داشته باشید (۱۲۸ تا به صورت پیش فرض)

options          COMPAT_43         # Compatible with BSD 4.3 [KEEP THIS!]

برای سازگاری با ۴٫۳BSD. این خط را نگه دارید. بعضی از برنامه‌ها رفتارهای عجیبی از خود نشان خواهند داد.

device          eisa

اگر یک مادربرد EISA دارید، این خط را هم اضافه کنید. با اضافه کردن این خط، تمام دستگاهایی که از گذرگاه EISA استفاده می‌کنند، به صورت خودکار شناسایی و نصب خواهد شد.

device          pci

اگر یک مادربرد PCI دارید، این خط را هم اضافه کنید. با اضافه کردن این خط، تمام دستگاهایی که از گذرگاه PCI استفاده می‌کنند، به صورت خودکار شناسایی و نصب خواهد شد.

# Floppy drives
device          fdc

این خط پشتیبانی از فلاپی‌درایو را فعال می‌کند.

# ATA and ATAPI devices
device          ata

این درایور می تواند تمام دستگاه‌هایی که از ATA و ATAPI استفاده می‌کنند را شناسایی کند.

device          atadisk                 # ATA disk drives

برای شناسایی دیسک های ATA، این خط باید در کنار device ata وجود داشته باشد.

device          atapicd                 # ATAPI CDROM drives

برای شناسایی CDROM های نوع ATAPI، این خط باید به همراه خط device ata وجود داشته باشد.

# SCSI Controllers
device          ahb        # EISA AHA1742 family
device          ahc        # AHA2940 and onboard AIC7xxx devices
options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
device          ahd        # AHA39320/29320 and onboard AIC79xx devices
options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
device          amd        # AMD 53C974 (Teckram DC-390(T))
device          isp        # Qlogic family
#device         ispfw      # Firmware for QLogic HBAs- normally a module
device          mpt        # LSI-Logic MPT-Fusion
#device         ncr        # NCR/Symbios Logic
device          sym        # NCR/Symbios Logic (newer chipsets + those of  `ncr')
device          trm        # Tekram DC395U/UW/F DC315U adapters
device          adv        # Advansys SCSI adapters
device          adw        # Advansys wide SCSI adapters
device          aha        # Adaptec 154x SCSI adapters
device          aic        # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device          bt         # Buslogic/Mylex MultiMaster SCSI adapters
device          ncv        # NCR 53C500
device          nsp        # Workbit Ninja SCSI-3
device          stg        # TMC 18C30/18C50

کنترلرهای SCSI هستند. می توانید هر یک از این خطوط را بردارید؛ اگر دستگاهی از آن نوع را در سیستم ندارید. اگر سیستم شما تنها سخت‌افزارهای نوع IDE دارد، می توانید تمام این خطوط را یک جا بردارید. خطوط *_REG_PRETTY_PRINT گزینه‌های مربوط به خطایابی برای اینها هستند.

# RAID controllers interfaced to the SCSI subsystem
device          amr        # AMI MegaRAID
device          arcmsr     # Areca SATA II RAID
device          asr        # DPT SmartRAID V, VI and Adaptec SCSI RAID
device          ciss       # Compaq Smart RAID 5*
device          dpt        # DPT Smartcache III, IV - See NOTES for options
device          hptmv      # Highpoint RocketRAID 182x
device          hptrr      # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device          iir        # Intel Integrated RAID
device          ips        # IBM (Adaptec) ServeRAID
device          mly        # Mylex AcceleRAID/eXtremeRAID
device          twa        # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device          aac        # Adaptec FSA RAID
device          aacp       # SCSI passthrough for aac (requires CAM)
device          ida        # Compaq Smart RAID
device          mfi        # LSI MegaRAID SAS
device          mlx        # Mylex DAC960 family
device          pst        # Promise Supertrak SX6000
device          twe        # 3ware ATA RAID

کنترلر های RAID هستند. اگر هیچ دستگاهی از این نوع ندارید، می توانید این خطوط را بردارید.

device          vga        # VGA video card driver

درایور کارت گرافیک است.

# Power management support (see NOTES for more options)
#device          apm

این خط پشتیبانی از Advanced Power Managment را فعال می‌کند. برای استفاده در لپ‌تاپ ها توصیه می‌شود. هر چند که به صورت پیش فرض در هسته GENERIC فعال نیست.

# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device          cbb               # cardbus (yenta) bridge
device          pccard            # PC Card (16-bit) bus
device          cardbus           # CardBus (32-bit) bus

پشتیبانی از PCMCIA. اگر از یک لپ‌تاپ استفاده می‌کنید، این خطوط را نگه دارید.

# Serial (COM) ports
device          sio               # 8250, 16[45]50 based serial ports

درایور پورت سریال است. در سیستم‌عامل‌های DOS\WINDOWS به پورت سریال اصطلاحا COM گفته می‌شود.

# PCI Ethernet NICs.
device          de         # DEC/Intel DC21x4x (“Tulip”)
device          em         # Intel PRO/1000 adapter Gigabit Ethernet Card
device          ixgb       # Intel PRO/10GbE Ethernet Card
device          txp        # 3Com 3cR990 (“Typhoon”)
device          vx         # 3Com 3c590, 3c595 (“Vortex”)

درایورهای مختلف برای انواع مختلف کارت های شبکه. آنهایی که لازم نیستند را بردارید.

# Wireless NIC cards
device          wlan            # 802.11 support

پشتیبانی از شبکه بی‌سیم و پروتکل ‎۸۰۲٫۱۱‎. این خط برای پشتیبانی از این شبکه‌ها لازم است وجود داشته باشد.

device          wlan_wep        # 802.11 WEP support
device          wlan_ccmp       # 802.11 CCMP support
device          wlan_tkip       # 802.11 TKIP support

روش های مختلف رمزنگاری در شبکه‌های بی‌سیم.

device          an         # Aironet 4500/4800 802.11 wireless NICs.
device          ath             # Atheros pci/cardbus NIC's
device          ath_hal         # Atheros HAL (Hardware Access Layer)
device          ath_rate_sample # SampleRate tx rate control for ath
device          awi        # BayStack 660 and others
device          ral        # Ralink Technology RT2500 wireless NICs.
device          wi         # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device         wl         # Older non 802.11 Wavelan wireless NIC.

درایورهای انواع مختلف کارت شبکه‌های بی‌سیم.

# Pseudo devices
device   loop          # Network loopback

درایور کارت شبکه loopback است. این خط لازم است.

device   ether         # Ethernet support

پشتیبانی از اترنت را فعال می‌کند. اگر یک کارت شبکه اترنت دارید این خط را نگه دارید.

# USB support
device          uhci          # UHCI PCI->USB interface
device          ohci          # OHCI PCI->USB interface
device          ehci          # EHCI PCI->USB interface (USB 2.0)
device          usb           # USB Bus (required)
#device         udbp          # USB Double Bulk Pipe devices
device          ugen          # Generic
device          uhid          # “Human Interface Devices”
device          ukbd          # Keyboard
device          ulpt          # Printer
device          umass         # Disks/Mass storage - Requires scbus and da
device          ums           # Mouse
device          ural          # Ralink Technology RT2500USB wireless NICs
device          urio          # Diamond Rio 500 MP3 player
device          uscanner      # Scanners
# USB Ethernet, requires mii
device          aue           # ADMtek USB Ethernet
device          axe           # ASIX Electronics USB Ethernet
device          cdce          # Generic USB over Ethernet
device          cue           # CATC USB Ethernet
device          kue           # Kawasaki LSI USB Ethernet
device          rue           # RealTek RTL8150 USB Ethernet

درایورهایی برای انواع مختلف دستگاه‌های USB.

# FireWire support
device          firewire      # FireWire bus code
device          sbp           # SCSI over FireWire (Requires scbus and da)
device          fwe           # Ethernet over FireWire (non-standard!)

درایورهایی برای انواع مختلف دستگاه‌های FireWire