随笔分类 -  linux kernel system

摘要:以read为例: read是一个系统调用,系统调用之前在应用程序当中(或者叫用户空间当中),read的实现代码在内核中,read是如何找到内核的实现代码呢? 这个应用程序就是打开字符设备文件,然后使用系统调用,去读取里头的数据, 用 arm-linux-gcc static –g read_mem. 阅读全文
posted @ 2019-04-18 14:10 dongry
摘要:1 系统调用:(SYSTEM CALL) 操作系统(operating system)内核中有一组实现系统功能的过程,系统调用就是对上述过程的调用。程序员利用系统调用,向OS提出服务请求,由OS代为完成。 一般情况下进程是不能够存取系统内核的。它不能存取内核使用的内核段,也不能调用内核函数,CPU的 阅读全文
posted @ 2019-04-18 14:09 dongry
摘要:1 驱动分类 常规分类:字符设备、块设备、网络设备 字符设备:一种按字节来访问的设备,字符驱动负责驱动字符设备,这样的驱动通常实现open、close、read和write系统调用。如串口、LED、按键; 块设备:以块(一般为512字节)为最小传输单位的设备,块设备不能按字节处理数据。在Linux系 阅读全文
posted @ 2019-04-10 09:07 dongry
摘要:进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 终止进程 _exit 立即终止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 getpgrp 获取 阅读全文
posted @ 2019-04-04 08:24 dongry
摘要:内核链表是双向循环链表;链表结点基本构成:数据、前向指针、后向指针;不同于传统链表,前向指针和后向指针都是指向指针域没有指向结点中的数据,想要读取一个结点的数据是通过该结点的指针域拿到结点的数据; 1 分析遍历链表与取出结点 源代码 1 关键字:typeof 1 将参数写入typeof有两种方式:表 阅读全文
posted @ 2019-04-02 17:18 dongry
摘要:1 内核模块 Linux内核的整体结构非常庞大,其包含的组件也非常多,如果把所有的组件都编译进内核文件,即:zImage或bzImage,但这样会导致一个问题:占用内存过多。 所以就需要动态的添加某些组件,这些组件就是内核模块。特点:模块本身并不被编译到内核文件(zImage或bzImage);可以 阅读全文
posted @ 2019-03-27 14:47 dongry
摘要:1 嵌入式系统组成 BootLoader、内核、根目录文件系统 2 BootLoader uboot是嵌入式启动程序BootLoader的业界老大,所以一般都用uboot。 操作之前先make distclean以前的配置项。 2.1 配置uboot Uboot编译后要告诉映像运行在什么系统体系上。 阅读全文
posted @ 2019-03-27 09:15 dongry