藏在岁月里的故事,终将与月光和花香一起,酿成淳淳的酒,芬芳后来的岁月,无论哪一种生活,希望你始终在回望时,记忆里有淡淡的花香。
----小新
一.交叉编译器
![](https://i-blog.csdnimg.cn/blog_migrate/3160528552241655a711410fe5f4f54f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/588aa19b35832114db7ca6f9733cf442.png)
二.makefile的编写
三.linux驱动开发的常用命令
- ls:显示当前目录的内容。例如,ls -l可以列出当前目录的详细列表。
- cd:切换当前目录。例如,cd /home/user可以进入/home/user目录。
- pwd:显示当前工作目录的路径。
- mkdir:创建一个新的目录。例如,mkdir mydir可以创建一个名为mydir的新目录。
- touch:创建一个新的空文件或更新一个已存在的文件。例如,touch file.txt可以创建一个名为file.txt的空文件。
- rm:删除一个文件或目录。例如,rm file.txt可以删除名为file.txt的文件。
- cp:复制一个文件或目录。例如,cp file1.txt file2.txt可以将file1.txt复制为file2.txt。
- mv:移动一个文件或目录。例如,mv file1.txt /home/user可以将file1.txt移动到/home/user目录下。
- cat:显示一个文件的全部内容。例如,cat file.txt可以显示file.txt文件中的全部内容。
- more:逐页显示一个文件的内容。例如,more file.txt可以逐页显示file.txt文件的内容。
- less:与more类似,但是可以进行向前翻页等操作。例如,less file.txt可以以交互方式显示file.txt文件的内容。
- find:查找文件或目录。例如,find /home/user -name "*.txt"可以查找/home/user目录下所有扩展名为.txt的文件。
- grep:在文件中查找匹配的字符串模式。例如,grep "hello" file.txt可以在file.txt文件中查找包含"hello"的行。
- insmod:这是插入模块的命令,用于将编译好的驱动程序加载到内核中。需要指定驱动程序的路径和名称,如insmod /path/to/driver.ko。
- rmmod:这是删除模块的命令,用于从内核中卸载驱动程序。需要指定驱动程序的名称,如rmmod driver。
- lsmod:这个命令用于列出当前系统中已经加载的模块。通过该命令可以观察哪些模块已经加载,并可以获取关于已加载模块的信息,如大小、使用计数等。
- modinfo:这个命令用于显示指定模块的信息,包括模块的名称、版本、参数等。需要指定模块的路径和名称,如modinfo /path/to/driver.ko。
- read:这是从文件描述符中读取数据的命令。在驱动程序中,可以使用read命令从设备文件中读取数据,并将数据传递给用户空间。
- write:这是向文件描述符中写入数据的命令。在驱动程序中,可以使用write命令将数据从用户空间传递到设备文件中。
- mmap:这个命令用于将设备文件映射到用户空间的内存中。通过mmap命令,用户空间可以直接访问驱动程序暴露的设备内存。
- mprotect:这个命令用于修改内存区域的保护级别。在驱动程序中,可以使用mprotect命令将设备内存区域的保护级别设置为只读或者不可访问。
- open:这个命令用于打开设备文件。在驱动程序中,可以使用open命令初始化和配置设备,并返回一个文件描述符给用户空间。
- close:这个命令用于关闭设备文件。在驱动程序中,可以使用close命令释放设备资源并关闭文件描述符。
四.文件系统
文件系统是一种用于组织和管理计算机上存储数据的方法。它提供了一种层次化的结构,使用户能够方便地存储、访问和操作文件和目录。文件系统是操作系统的核心组成部分,它负责管理存储设备上的数据,并提供对文件和目录的抽象接口。文件是存储在存储设备上的数据单元,可以是文本文件、图像文件、音频文件等不同类型的数据。目录是一种特殊的文件,用于组织和管理其他文件和目录。路径是用于定位文件或目录在文件系统中位置的字符串。文件系统提供了一系列操作用于对文件进行读取、写入、复制、移动、删除等操作。
五.Linux网络
Linux是一种流行的开源操作系统,具有强大的网络功能。Linux网络指的是在Linux系统中进行网络编程和网络管理的一系列工具和技术。这些工具和技术包括网络协议栈、网络接口、路由协议、网络安全工具等。Linux还提供了大量的网络服务,如Web服务器、FTP服务器、SMTP服务器等,这些服务使得Linux成为网络服务器的主要操作系统之一。
六.多线程/多进程
多线程和多进程是并发编程的两种形式,它们允许计算机同时执行多个任务。多线程是在一个程序中划分出多个线程,每个线程独立运行,共享内存空间和全局变量,适合一些I/O密集型的任务,如文件传输、Web服务器等需要频繁读写数据或者相互协作完成某项任务的业务场景。多进程是在一个程序中同时运行多个程序实例,每个程序实例是一个独立的进程,拥有自己的内存空间和全局变量。多进程适合计算密集型的任务,如图像处理、视频转码等,因为它利用了现代多核CPU的能力来加速计算。多进程还具有稳定性和容错能力高的优点,即使其中一个进程意外崩溃,整个程序也不会停止工作。