什么是核心 (Kernel) Kernel 其实核心就是系统上面的一个文件而已, 这个文件包含了驱动主机各项硬 件的侦测程序与驱动模块. 核心文件通常被放置成 /boot/vmlinuz-xxx ,不过也不见得,因为一部主机上面可以拥有多个核 心文件,只是开机的时候仅能选择一个来加载而已. 核心模块 (kernel module) 的用途 Linux 很早之前就已经开始使用所谓的模块化设定了! 亦即是将一 些不常用的类似驱动程序的咚咚独立出核心,编译成为模块,然后, 核心可以在系统正常运作的过…
这两天需要做音视频播放相关的东西,所以重新找了目前android下的解码库.Android自带的解码库支持不全,因此很多第三方播放器都是自带解码器,绝大部分都是使用FFMpeg作为解码库.我11年的时候也弄过视频播放器,当时也是基于FFMpeg来做.那时候网上有关Android视频解码库的资料不多,只在git上找到一个人移植FFMpeg,把它弄下来编译,有兴趣可以看看当时的文章:Android 视频播放器 faplayer 编译 . 言归正传,今天的主角是大名鼎鼎的VLC,做过视频播放器的人,应…
大学毕业已经快三年了,从事嵌入式开发的工作也快三年了. 不过,老干些裸机开发,感觉很是枯燥,一咬牙一跺脚,决定从今天开始学习Linux操作系统,顺便记录下学习过程中所遇到的问题与心得. 自己从前完全没有接触过这方面的东西,完全是从一个纯粹的新人开始,也不知道有多少同志在和我走想同的路,总之,大家共勉吧! ---------------------分割线--------------------------------- 据江湖传言,Linux最先是由一个很牛的芬兰大学生搞出来的. 然后还充分发扬了…
使用原始码管理软件所需要的基础软件 从原始码的说明我们晓得要制作一个 binary program 需要很多咚咚的呢!这包括底下这些基础的软件: gcc 或 cc 等 C 语言编译程序 (compiler): make 及 autoconfig 等软件: 需要 Kernel 提供的 Library 以及相关的 Include 文件: 在 CentOS 当中,如果你已经有网络可以连上 Internet 的话,透过 yum 的软件群组安装功能,你可以这样做: 如果是要安装 gcc 等软件开发工具,请…
什么是开放源码.编译程序与可执行文件 我们说过,在 Linux 系统上面,一个文件能不能被执行看的是有没有可执行的那个权限 (具有 x permission),不过,Linux 系统上真 正认识的可执行文件其实是二进制文件 ( binary program). 或许你会说 shell scripts 不是也可以执行吗?其实 shell scripts 只是利用 shell (例如 bash) 这支程 序的功能进行一些判断式,而最终执行的除了 bash 提供的功能外,仍是呼叫一些已经编译好的二进…
Linux 界的两大主流: RPM 与 DPKG 目前在 Linux 界软件安装方式最常见的有两种,分别是: dpkg: 这个机制最早是由 Debian Linux 社群所开发出来的,透过 dpkg 的机制, Debian 提供的软件就能够简单 的安装起来,同时还能提供安装后的软件信息,实在非常不错. 只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软件的, 包括 B2D, Ubuntu 等等. RPM: 这个机制最早是由 Red H…
编译前注意事项 由于我们的核心原本就有提供很多的核心工具给硬件开发商来使用, 而硬件开发商也需要针对核心 所提供的功能来设计他们的驱动程序模块,因此, 我们如果想要自行使用硬件开发商所提供的模块 来进行编译时,就需要使用到核心所提供的原始档当中, 所谓的头文件案 (header include file) 来取 得驱动模块所需要的一些函式库或标头的定义啦! 也因此我们常常会发现到,如果想要自行编译核心模块时,就得要拥有核心原始码嘛! 那核心原始码我们知道他是可能放置在 /usr/src/ 底下,…
编译核心与核心模块 核心与核心模块需要先编译起来,而编译的过程其实非常简单,你可以先使用『 make help 』去查 阅一下所有可用编译参数, 就会知道有底下这些基本功能: [root@study linux-3.10.89]# make vmlinux <==未经压缩的核心 [root@study linux-3.10.89]# make modules <==仅核心模块 [root@study linux-3.10.89]# make bzImage <==经压缩过的核心(预设)…
硬件环境检视与核心功能要求 根据自己的需求来确定编译的选项 保持干净原始码: make mrproper 我们还得要处理一下核心原始码底下的残留文件才行!假设我们是第一次 编译, 但是我们不清楚到底下载下来的原始码当中有没有保留目标文件 (*.o) 以及相关的配置文件 存在, 此时我们可以透过底下的方式来处理掉这些『编译过程的目标文件以及配置文件』: [root@study ~]# cd /usr/src/kernels/linux-3.10.89/ [root@study linux-3.10…
为了某些缘故需要最新的 4.x.y 的核心版本来实作某些特定的功能时,那该 如何是好?没办法,只好使用最新的核心版本来编译你可以依照上面的程序来一个一个处理, 没有问题~不过,你也可以根据 ELRepo 网站提供的 SRPM 来重新编译打包喔! 当然你可以直接 使用 ELRepo 提供的 CentOS 7.x 专属的核心来直接安装. 底下我们使用 ELRepo 网站提供的 SRPM 文件来实作核心编译.而要这么重新编译的原因是,需要将 VFIO 的 VGA 直接支持的核心功能打开! 因此整个程序…