Все материалы предоставлены только с ознакомительной целью
Главная — Статьи — Linux/FreeBSD — FreeBSD Kernel
FreeBSD Kernel
© Dumpeal 12.12.2005 статья не оптимизирована
В этой статье мы ознакомимся с созданием собственного ядра для FreeBSD.
1) Зачем собственно ядро.
2) Составление ядра.
3) Установка.
4) Если новое ядро не работает.
5) Литература
1)
Ядро - это основная часть операционной системы FreeBSD . Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что FreeBSD становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. В FreeBSD идет стандартное ядро, которое называется GENERIC,так как в нем много лишнего и не нужного для нас мы попробуем сделать собственное ядро. В стандартном ядре включен большой список аппаратных устройств, которые не когда не понадобятся для использования. Какой выигрыш мы можем получить за счет нового ядра:
a) Возможно будет уменьшен интервал загрузки системы.
b) Уменьшение использования памяти.
c) Включение дополнительных аппаратных средств.
2)
Посмотрите, установлены ли у вас исходные тексты ядра /usr/src/sys . Если нет, то ставим /stand/sysinstall ->Configure -> Distributions.Дальше переходим собственно в каталог с ядром:
> 1) cd /usr/src/sys/i386/conf
2) cp GENERIC KERNEL (это строка копирует стандартное ядро в файл KERNEL)
Теперь пришло время редактирования нашего ядра.
3)
Ну что, пожалуй, вот наше ядро и готово. Приступим к установке.
1) cd /usr/src (переход в католог)
2) make buildkernel KERNCONF=KERNEL (сборка ядра)
3) make installkernel KERNCONF=KERNEL
или так
1) /usr/sbin/config KERNEL
2) cd ../../compile/KERNEL
3) make depend
4) make
5) make install
Если все прошло успешно перезагружаемся.
4)
Возможно у вас возникли проблемы с новым ядром. Прежде всего при загрузке системы нажмите любую клавишу кроме Enter. Появится строка это означает что наше ядро загружено.
1) unload (выгрузка нашего ядра)
2) Посмотрите какие ядра есть в каталоге.
3) load /GENERIC (загрузка рабочего ядра)
4) load /modules/if_fpx.ko
5) boot
Теперь ваша система должна загрузиться со старого ядра.
5)
1) www.freebsd.org
2) www.opennet.ru
3) www.unixdoc.ru
4) www.google.ru
© Dumpeal 12.12.2005 статья не оптимизирована
В этой статье мы ознакомимся с созданием собственного ядра для FreeBSD.
1) Зачем собственно ядро.
2) Составление ядра.
3) Установка.
4) Если новое ядро не работает.
5) Литература
1)
Ядро - это основная часть операционной системы FreeBSD . Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что FreeBSD становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. В FreeBSD идет стандартное ядро, которое называется GENERIC,так как в нем много лишнего и не нужного для нас мы попробуем сделать собственное ядро. В стандартном ядре включен большой список аппаратных устройств, которые не когда не понадобятся для использования. Какой выигрыш мы можем получить за счет нового ядра:
a) Возможно будет уменьшен интервал загрузки системы.
b) Уменьшение использования памяти.
c) Включение дополнительных аппаратных средств.
2)
Посмотрите, установлены ли у вас исходные тексты ядра /usr/src/sys . Если нет, то ставим /stand/sysinstall ->Configure -> Distributions.Дальше переходим собственно в каталог с ядром:
> 1) cd /usr/src/sys/i386/conf
2) cp GENERIC KERNEL (это строка копирует стандартное ядро в файл KERNEL)
Теперь пришло время редактирования нашего ядра.
| machine | i386 | #Параметр обязателен для любого типа машин |
| cpu | I686_CPU | #Архитектура машины |
| ident | KERNEL | #Название нашего ядра |
| # Floating point support - do not disable. | ||
| device | npx | #обязательный параметр для работы с плавающей точкой в FreeBsd |
| # Pseudo devices | ||
| device | loop | # Network loopback |
| #makeoptions | DEBUG=-g | # Build kernel with gdb(1) debug symbols |
| options | SCHED_ULE | #4BSD scheduler |
| options | INET | #InterNETworking |
| options | INET6 | #IPv6 communications protocols |
| options | FFS | #Berkeley Fast Filesystem |
| options | SOFTUPDATES | #Enable FFS soft updates support |
| options | UFS_ACL | #Support for access control lists |
| options | UFS_EXTATTR | |
| options | UFS_EXTATTR_AUTOSTART | |
| options | UFS_DIRHASH | #Improve performance on big directories |
| options | MD_ROOT | #MD is a potential root device |
| options | NFSCLIENT | #Network Filesystem Client |
| options | NFSSERVER | #Network Filesystem Server |
| options | NFS_ROOT | #NFS usable as root device, requires |
| NFSCLIENT | ||
| options | MSDOSFS | #MSDOS Filesystem |
| options | CD9660 | #ISO 9660 Filesystem |
| options | PROCFS | #Process filesystem (requires PSEUDOFS) |
| options | PSEUDOFS | #Pseudo-filesystem framework |
| options | NTFS | |
| options | MSDOSFS | |
| options | EXT2FS | |
| options | COMPAT_43 | #Compatible with BSD 4.3 [KEEP THIS!] |
| options | COMPAT_FREEBSD4 | #Compatible with FreeBSD4 |
| options | SCSI_DELAY=15000 | #Delay (in ms) before probing SCSI |
| options | KTRACE | #ktrace(1) support |
| options | SYSVSHM | #SYSV-style shared memory |
| options | SYSVMSG | #SYSV-style message queues |
| options | SYSVSEM | #SYSV-style semaphores |
| options | _KPOSIX_PRIORITY_SCHEDULING | #Posix P1003_1B real-time extensions |
| options | KBD_INSTALL_CDEV | # install a CDEV entry in /dev |
| options | AHC_REG_PRETTY_PRINT | # Print register bitfields in debug # output. Adds ~128k to driver. |
| options | AHD_REG_PRETTY_PRINT | # Print register bitfields in debug |
| options | IPFIREWALL | |
| options | IPDIVERT | |
| options | DUMMYNET | |
| options | BRIDGE | |
| device | apic | #APIC I/O |
| # To make an SMP kernel, the next two are needed | ||
| #options | SMP | # Symmetric MultiProcessor Kernel |
| #options | APIC_IO | # Symmetric (APIC) I/O |
| device | isa | |
| device | eisa | |
| device | pci | |
| # Floppy drives | ||
| device | fdc | |
| # ATA and ATAPI devices | ||
| device | ata | |
| device | atadisk | # ATA disk drives |
| device | atapicd | # ATAPI CDROM drives |
| device | atapifd | # ATAPI floppy drives |
| device | atapist | # ATAPI tape drives |
| options | ATA_STATIC_ID | #Static device numbering |
| # SCSI Controllers | ||
| device | ahb | # EISA AHA1742 family |
| device | ahc | # AHA2940 and onboard AIC7xxx devices |
| device | ahd | # AHA39320/29320 and onboard AIC79xx devices |
| device | amd | # AMD 53C974 (Tekram DC-390(T)) |
| device | isp | # Qlogic family |
| 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 |
| # RAID controllers interfaced to the SCSI subsystem | ||
| 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 | iir | # Intel Integrated RAID |
| device | mly | # Mylex AcceleRAID/eXtremeRAID |
| # SCSI peripherals | ||
| device | scbus | # SCSI bus (required) |
| device | ch | # SCSI media changers |
| device | da | # Direct Access (disks) |
| device | sa | # Sequential Access (tape etc) |
| device | cd | # CD |
| device | pass | # Passthrough device (direct SCSI access) |
| device | ses | # SCSI Environmental Services (and SAF-TE) |
| # RAID controllers | ||
| device | aac | # Adaptec FSA RAID |
| device | aacp | # SCSI passthrough for aac (requires CAM) |
| device | amr | # AMI MegaRAID |
| device | ida | # Compaq Smart RAID |
| device | ips | # IBM (Adaptec) ServeRAID |
| device | mlx | # Mylex DAC960 family |
| device | pst | # Promise Supertrak SX6000 |
| device | twe | # 3ware ATA RAID |
| # atkbdc0 controls both the keyboard and the PS/2 mouse | ||
| device | atkbdc | # AT keyboard controller |
| device | atkbd | # AT keyboard |
| device | psm | # PS/2 mouse |
| device | vga | # VGA video card driver |
| device | splash | # Splash screen and screen saver support |
| # Serial (COM) ports | ||
| device | sio | # 8250, 16[45]50 based serial ports |
| # Parallel port | ||
| device | ppc | |
| device | ppbus | # Parallel port bus (required) |
| device | lpt | # Printer |
| device | plip | # TCP/IP over parallel |
| device | ppi | # Parallel port interface device |
| #device | vpo | # Requires scbus and da |
| # PCI Ethernet NICs. | ||
| device | de | # DEC/Intel DC21x4x (``Tulip'') |
| device | em | # Intel PRO/1000 adapter Gigabit Ethernet Card |
| device | txp | # 3Com 3cR990 (``Typhoon'') |
| device | vx | # 3Com 3c590, 3c595 (``Vortex'') |
| # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! |
||
| device | miibus | # MII bus support |
| device | dc | # DEC/Intel 21143 and various workalikes |
| device | fxp | # Intel EtherExpress PRO/100B (82557, 82558) |
| device | pcn | # AMD Am79C97x PCI 10/100 (precedence over 'lnc') |
| device | rl | # RealTek 8129/8139 |
| device | sf | # Adaptec AIC-6915 (``Starfire'') |
| device | sis | # Silicon Integrated Systems SiS 900/SiS 7016 |
| device | sk | # SysKonnect SK-984x and SK-982x gigabit ethernet |
| device | ste | # Sundance ST201 (D-Link DFE-550TX) |
| device | ti | # Alteon Networks Tigon I/II gigabit ethernet |
| device | tl | # Texas Instruments ThunderLAN |
| device | tx | # SMC EtherPower II (83c170 ``EPIC'') |
| device | vr | # VIA Rhine, Rhine II |
| device | wb | # Winbond W89C840F |
| device | xl | # 3Com 3c90x (``Boomerang'', ``Cyclone'') |
| device | bge | # Broadcom BCM570xx Gigabit Ethernet |
| # ISA Ethernet NICs. pccard nics included. | ||
| device | cs | # Crystal Semiconductor CS89x0 NIC |
| # Wireless NIC cards | ||
| device | wlan | # 802.11 support |
| device | an | # Aironet 4500/4800 802.11 wireless NICs. |
| device | awi | # BayStack 660 and others |
| device | wi | # WaveLAN/Intersil/Symbol 802.11 wireless NICs. |
| #device | wl | # Older non 802.11 Wavelan wireless NIC. |
| # Pseudo devices - the number indicates how many units to allocate. | ||
| device | random | # Entropy device |
| device | loop | # Network loopback |
| device | ether | # Ethernet support |
| device | sl | # Kernel SLIP |
| device | ppp | # Kernel PPP |
| device | tun | # Packet tunnel. |
| device | pty | # Pseudo-ttys (telnet etc) |
| device | md | # Memory "disks" |
| device | gif | # IPv6 and IPv4 tunneling |
| device | faith | # IPv6-to-IPv4 relaying (translation) |
| # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! |
||
| device | bpf | # Berkeley packet filter |
| # USB support | ||
| device | uhci | # UHCI PCI->USB interface |
| device | ohci | # OHCI PCI->USB interface |
| 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 | 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 | cue | # CATC USB ethernet |
| device | kue | # Kawasaki LSI USB ethernet |
| # FireWire support | ||
| device | firewire | # FireWire bus code |
| device | sbp | # SCSI over FireWire (Requires scbus and da) |
| device | fwe | # Ethernet over FireWire (non-standard!) |
3)
Ну что, пожалуй, вот наше ядро и готово. Приступим к установке.
1) cd /usr/src (переход в католог)
2) make buildkernel KERNCONF=KERNEL (сборка ядра)
3) make installkernel KERNCONF=KERNEL
или так
1) /usr/sbin/config KERNEL
2) cd ../../compile/KERNEL
3) make depend
4) make
5) make install
Если все прошло успешно перезагружаемся.
4)
Возможно у вас возникли проблемы с новым ядром. Прежде всего при загрузке системы нажмите любую клавишу кроме Enter. Появится строка это означает что наше ядро загружено.
1) unload (выгрузка нашего ядра)
2) Посмотрите какие ядра есть в каталоге.
3) load /GENERIC (загрузка рабочего ядра)
4) load /modules/if_fpx.ko
5) boot
Теперь ваша система должна загрузиться со старого ядра.
5)
1) www.freebsd.org
2) www.opennet.ru
3) www.unixdoc.ru
4) www.google.ru
© Dumpeal 12.12.2005 статья не оптимизирована

linux не говно,при правильном обращении все будет гладко. 1) Для нее не...
Linux vs Windows