Linux大腦 "內核" 關於它
linux
kernel(內核)是操做系統的核心,至關於人的大腦,掌控全部的硬件設備的控制權,也就是但願計算機幫你完成各項工做,那都須要經過內核的幫助才能完成,固然,若是你想實現的功能內核沒有提供,那就必須添加相關的模塊到內核中,就相似驅動程序,有了模塊的支持咱們計算機才能去操控硬件,完成咱們想完成的工做c++
內核其實就是系統上面的一個文件,這個文件包含了驅動硬件的檢測程序與驅動模塊,內核文件在/boot目錄下一個以vmlinuz開頭的文件,有時候/boot下面有幾個vmlinuz開頭的文件,可是啓動的時候只能加載一個,因此說Linux系統是個單內核,多模塊的體系vim
Linux內核的官方網站是http://www.kernel.org,訪問該網站能夠獲取內核各個版本的代碼。其中網站主頁上顯示的是當前內核的最新穩定版本。dom
你能夠經過https://www.kernel.org/pub/linux/kernel/來查找任何一個你想要的內核版本,並用wget來下載他ide
內核編譯具體步驟
工具
執行步驟:開發工具
1、到www.kernel.org上下載相應的內核源碼包
2、確認你的系統中已經具有了編譯軟件的基本條件,也就是要安裝make ,gcc, gcc-c++ ,ncurses-devel和庫工具等等 。 開發工具和庫
3、解壓內核源碼包
4、配置內核編譯參數
5、編譯內核、安裝編譯好的內核與模塊
6、查看或修改GRUB菜單(爲了確認你是否是真的把內核安裝好了)
7、從新啓動系統,測試新內核的工做狀況
我這裏就不下載了,(網速太慢了/(ㄒoㄒ)/~~)不過我本地有 linux-3.16.2.tar 大家能夠去官網下載看看測試
[root@localhost ~]# yum groupinstall "Server Platform Development" "Development tools"網站
[root@localhost sdb1]# tar xvf linux-3.16.2.tar.xzspa
[root@localhost sdb1]# du -sh linux-3.16.2/
634M linux-3.16.2/
因爲咱們只添加一個NTFS,咱們把咱們現有的環境.config拷貝到到源碼包目錄下
[root@localhost linux-3.16.2]# cp /boot/config-2.6.32-642.el6.x86_64 ./.config
[root@localhost linux-3.16.2]# make menuconfig 打開文本窗口,配置內核選項(這裏依據.config文件中的定義)
如是想查詢,某個參數在哪裏,能夠這樣,在這個界面下,輸入: / 而後再輸入: NTFS 就顯示以下:
選中NTFS選項後,保存.conf 保存後,按下esc或 選中Exit 進程退出
配置過程當中:
[ ] : 表示不進行編譯
[M] : 表示以模塊的形式進行編譯
[*] : 編譯進內核中
[root@localhost linux-3.16.2]# make [-j 2] 表示CPU線程編譯
[root@localhost linux-3.16.2]# make modules_install 安裝模塊
[root@localhost linux-3.16.2]# make install 安裝內核相關文件
[root@localhost linux-3.16.2]# vim /boot/grub/grub.conf
注意,在啓動的時候,須要本身進來一下選擇,不然默認仍是之前的內核啓動哦。除非你在上一步把默認啓動項給改了。
[root@localhost ~]# uname -r
3.16.2
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.16.2 #1 SMP Mon Jul 25 10:34:36 CST 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]#
內核(模塊)管理命令:
模塊的做用:把具體功能封裝好的程序。 好比,衝電寶。能夠給全部手機衝電。
存放內核模塊的目路徑:
[root@localhost ~]# ll /lib/modules/
total 8
drwxr-xr-x. 7 root root 4096 Jul 25 08:43 2.6.32-642.el6.x86_64
drwxr-xr-x 3 root root 4096 Jul 25 12:31 3.16.2
[root@localhost ~]# cd /lib/modules/3.16.2/kernel/fs/
[root@localhost fs]# ls fat/
fat.ko msdos.ko vfat.ko
#Linux能夠直接支持FAT32文件系統
插入模塊:
insmod
做用:載入模塊
例:載入模塊fat.ko
[root@localhost fs]# insmod fat/fat.ko
查看當前系統中加載的模塊
#lsmod 列出當前模塊
[root@localhost fs]# lsmod | grep fat
fat 59379 0
刪除模塊
#rmmod fat #刪除模塊 。跟上模塊的名字
[root@localhost fs]# rmmod fat
[root@localhost fs]# lsmod | grep fat
[root@localhost fs]#
查看模塊信息
#modinfo 查看模塊信息
[root@localhost fs]# modinfo vfat
filename: /lib/modules/3.16.2/kernel/fs/fat/vfat.ko
author: Gordon Chaffee
description: VFAT filesystem support
license: GPL
alias: fs-vfat
srcversion: D2372BC4E9386742F7AE1A6
depends: fat
intree: Y
vermagic: 3.16.2 SMP mod_unload modversions
#modprobe 插入模塊(能夠自動解決模塊之間的依賴關係,像yum能夠自動解決rpm之間的依賴關係同樣)
[root@localhost fat]# modprobe vfat
[root@localhost fat]# lsmod | grep fat
vfat 10575 0
fat 59379 1 vfat
#modprobe -r 刪除模塊和 rmmod同樣 。刪除時不能自動解決依賴關係的
開機加載某個驅動:
[root@localhost ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Jul 25 08:37 /etc/rc.local -> rc.d/rc.local
[root@localhost ~]# vim /etc/rc.local
安裝 fuse:
[root@localhost ~]# tar zxvf fuse-2.8.3.tar.gz
[root@localhost ~]# cd fuse-2.8.3
[root@localhost fuse-2.8.3]# ./configure
[root@localhost fuse-2.8.3]# make && make install
安裝:ntfs-3g
[root@localhost ~]# tar zxvf ntfs-3g-2011.1.15.tgz
[root@localhost ~]# cd ntfs-3g-2011.1.15
[root@localhost ntfs-3g-2011.1.15]# ./configure
[root@localhost ntfs-3g-2011.1.15]# make && make install
掛載:
插一個NTFS格式分的U盤。 而後把U盤導入到虛擬機中
[root@localhost ~]# mount -t ntfs-3g /dev/sdb1 /opt/
開機自動掛載:
[root@localhost ~]# vim /etc/fstab
/dev/sdb1 /opt ntfs-3g defaults 0 0