当前位置:  技术问答>linux和unix

菜鸟对linux的N多疑惑以及设想

    来源: 互联网  发布时间:2016-08-16

    本文导语:     linux 应该算是软件,但和硬件联系也紧密,我以后要做底层的驱动开发。    linux 开源,整个系统对于开发者而言都是开放的,所以可以结合系统写出更有效率的应用软件。    驱动程序是这么个原理么?把...

   linux 应该算是软件,但和硬件联系也紧密,我以后要做底层的驱动开发。
   linux 开源,整个系统对于开发者而言都是开放的,所以可以结合系统写出更有效率的应用软件。
   驱动程序是这么个原理么?把自己的写的模块加入到系统的Makefile中,我编译过内核源码,在make menuconfig后出现了很多的选项,难道这就是传说中的系统剪裁么?看了个视频,这个时候自己加载的驱动也会出现在里面,选上就行。然后把这个编译好了的东西下载到开发板里面。里面的bootloader我估计就像windows的bios,与最底层的硬件打交道,从而启动。好像这个bootloader都是汇编写的么?那么开发板里面还要有自己的编译器了,这个是怎么装的呢?下载的时候是通过交叉编译环境的,我现在的虚拟机装的linux是否可以进行这个操作呢?
   linux全部都是命令行操作,这个感觉很难记住的。
   我的fedora 12系统里面是没有内核源码的,这里也有菜鸟问过这个问题,然后自己下载个内核源码进行编译,内核和linux系统之间存在什么联系?既然没有内核源码,那为什么我的fedora 也能够顺利的进行工作呢?
   睡觉去了先,希望菜鸟在此提问(经典问题也能得高分的),也希望高手点到为止一针见血的说清问题。多谢。

|
本帖最后由 wenxy1 于 2010-04-03 10:35:50 编辑
1. 驱动程序在kernel space 工作,既可以编译进内核,也可以用内核模块的方式动态加载。驱动程序是对硬件的寄存器进行操作,一般还要处理中断请求,为应用程序提供一个访问硬件的API。

2. bootloader有部分代码是ASM, 大部分代码是C,可以看看一些开源的boot loader, 例如u-boot(它比较复杂).

3. linux既支持CUI,也支持GUI,在文本用户界面下,常见的shell都支持tab键补齐命令,查看命令的帮助方法也有很多,像man, info, pinfo.

4. kernel source code, 可以在 www.kernel.org上下载,像最新的Fedora core似乎装系统时都不安装源码了,在ISO镜像里有内核源码的安装包,也可以在kernel.org上下载。

5. 源代码经过编译和链接后,变成了机器码,即01二进制数据,CPU只认机器码。

6. kernel和操作系统之间的关系是kernel是OS的核心,kernel加上根文件系统和shell就组成了一个完整的OS,shell是一个user space的应用程序,负责解释用户输入的命令,显示处理结果等。例如bash, busybox(用于嵌入式环境).

|
大部分你的问号 回答都是正确或可以 以下额外说明一些例外的
- bootloader也是个程序 跟Linux一样交叉编译 环境基本相同
- linux系统是包括了内核和用户使用环境和工具软件
- 因为你的fedora内核是已经编译好的 如果你需要在你的系统里做内核或驱动开发才需要下载其源码

|
linux全部都是命令行操作,这个感觉很难记住的。
--------------------------------
刚开始肯定感觉很难记住  但是学习  使用  熟练都有一定的过程   当你坚持使用一段时间后  什么操作该用什么命令你会自然而然的知道   当然一个命令的参数也有很多  当你不会的时候你man一下就可以了   当然linux那么多命令全部记住也不太可能  偶尔google一下  也未尝不可呀

  我的fedora 12系统里面是没有内核源码的,这里也有菜鸟问过这个问题,然后自己下载个内核源码进行编译,内核和linux系统之间存在什么联系?既然没有内核源码,那为什么我的fedora 也能够顺利的进行工作呢?
-----------------------------------------------------------------------------------------------------------
其实内核源码  他也是源码呀   举个简单的例子   你下个apache的源码  你编译安装之后 那么源码还需要吗?
但是你突然发现你安装的apache缺少一些功能或者支持   你是不是要用源码来重新编译安装呀?
那同样内核源码通过编译安装之后    生成的启动文件放到了/boot    内核模块被放到了/lib/modules 等等

个人观点 仅供参考

|
?那么开发板里面还要有自己的编译器了,这个是怎么装的呢?下载的时候是通过交叉编译环境的,我现在的虚拟机装的linux是否可以进行这个操作呢?
-------------------------
1.要制作交叉编译工具链  网上有资料你可以查下
2.可以

|
PWD  := $(shell pwd) #执行shell命令,把当前路径赋值给PWD

|
交叉编译工具链可以在pc下制作
在pc下交叉编译程序
把生成的程序传到板子上运行



|
zmlovelx 回答非常的清楚。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ----菜菜鸟第三问:-菜鸟菜问:JAVA如何求 根号、开次方? -----
  • 菜鸟问一个关于j2ee的菜鸟问题
  • 怎样从一个菜鸟级的java programer升级到一个菜鸟级的java developer
  • 一个连菜鸟都算不上的菜鸟
  • 技术文章 iis7站长之家
  • ===菜鸟系列===:写过毕业论文的前辈请进!!!菜鸟散分啦!!!!
  • gcc问题---菜鸟发问之一,老大们帮忙啊!!菜鸟分不多,只好给这点了,对不起!!
  • 菜鸟又来问菜鸟问题了
  • 菜鸟的Linux练习疑问……
  • 菜鸟刚学jsp,还不知道怎么和sql server2000的数据库相连,我已经把odbc配好了,谁能给我一段和数据库相连的并显示所有数据的代码!菜鸟
  • 菜鸟提问,我怎么装redhat7。1
  • 菜鸟写的俄罗斯方块,请多多批评!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 一个菜鸟的请求: 哪位前辈能给晚辈讲讲“匿名类”
  • ※菜鸟送分之一※ Red Hat Linux 的最高版本是多少?
  • 菜鸟问题:在Java中如何接收从键盘输入的字符串?
  • ★菜鸟问:怎么在RED HAT LINUX7.2中用169上网??
  • 菜鸟提问:包是什么概念?
  • 菜鸟问题~~快点进来拿分
  • 菜鸟菜问题1


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3