Linux学习笔记
reading_code_man
背着书包去工作。。。
展开
-
学习Shell script
Shell script Bash 命令执行的相关规则: 1. 命令执行时从上而下、从左而右的分析与执行。 2. 命令、参数间的多个空白都会被忽略掉。 3. 如果读取到一个Enter符号,就尝试开始执行该行命令。 4. 至于一行内容太对,则可以使用“\Enter”来扩展至下一行。 5. “#”原创 2014-02-25 14:12:26 · 552 阅读 · 0 评论 -
字符驱动程序框架
框架:…………………………………………………………………………………………………………………………………………………………………………………………………………应用部分:应用程序:open read write(这些函数由C库实现)(C库怎么进入内核)open read write 的调用实际上是执行一条swi val 指令,这条汇编指令就会引发一个异常,相当于中断一样,原创 2014-03-16 10:12:18 · 478 阅读 · 0 评论 -
Linux中断处理体系结构
1.中断处理的体系结构 Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断; 每个数组项对应一个中断,也可能是一组中断,它们共用相同的中断号,里面记录了中断的名称、中断状态、中断标记(比如中断类型、是否共享中断等),并提供了中断的低层硬件访问函数(清除、屏蔽、使能中断),提供了这个中断的处理函数入口,通过它可以调用用户注册的中断转载 2014-03-24 17:31:59 · 419 阅读 · 0 评论 -
设备号Major
在Linux2.6的版本中,用dev_t类型来描述设备号(dev_t是32位数值类型,其中高12位表示主设备号,低20位表示次设备号)。 用两个宏MAJOR,MINOR分别获得dev_t设备号的主设备号和次设备号,而且用MKDEV宏来实现逆过程,即组合主设备号和次设备号而获得dev_t类型的设备号。实现代码如下:#include MAJOR(dev_t dev);MI原创 2014-03-25 09:56:39 · 635 阅读 · 0 评论 -
TCP/IP参考模型
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。 ┌─────┐ │ 应用层 │←第七层 ├─────┤ │ 表示层 │ ├─────┤ │ 会话层 │ ├─────┤ │ 传输层 │原创 2014-03-25 20:36:13 · 793 阅读 · 0 评论 -
套接字socket
同一台计算机上运行的进程可以相互通信:经典的进程间通信IPC:管道、先进先出、消息队列、信号量以及共享内存。不同计算机(通过网络连接)上运行的进程相互通信:网络进程间通信(network IPC)。 套接字(socket):是一种特殊的I/O接口,它也是一种文件描述符。套接字是通信端点的抽象。应用程序访问文件需要使用文件描述符,访问套接字也需要使用套接字的文件描述符。转载 2014-03-26 11:15:29 · 675 阅读 · 0 评论 -
nor flash与nand flash启动过程区别
ARM的nor flash与nand flash启动过程区别B,s3c2440启动过程详解1:地址空间的分配2:开发板上一般都用SDRAM做内存,flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线3:nandflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码)转载 2014-05-15 17:58:53 · 392 阅读 · 0 评论 -
Linux面试题
1.malloc和new的区别2.解释一下位域3.c语言的地址对齐是怎么回事4.写一个类似于printf的函数,可以接受任意多个参数5.使用memcp函数的时候,有什么要注意的6.说一下你知道的排序算法7.有两个单链表,用什么方法可以快速的知道他们有没有相同的部分8.执行make命令的时候怎么给makefile传递参数9.解释一下僵尸进程10.僵尸进程怎么回收转载 2014-05-12 21:18:42 · 475 阅读 · 0 评论 -
嵌入式linux基本环境配置
1. 更新到最新的软件包Open up System -> Administration -> Update ManagerClick on SettingsOpen the Updates TabSet 'Release upgrade' to 'Never'. That makes the option to upgrade to Karmic go转载 2014-05-23 18:23:56 · 418 阅读 · 0 评论 -
嵌入式软件工程师学习之路
首先我也是嵌入式道路上的人,我觉得c语言和数据结构是必须的,单片机要了解一点对后面学习了解arm有帮助(毕竟arm是高级的单片机么),下来有了单片机的基础,我想就可以学习arm了吧,下来就是linux了,linux的一些基础肯定得会,例如一些命令的使用,一些简单服务器的配置。。。然后就可以先开始学应用了吧,进程,线程,内存映射,网络编程,时间编程等等,下来就可以学简单内核方面知识了,例如:内核配置转载 2014-05-25 16:34:04 · 3131 阅读 · 0 评论 -
Ubuntu tftp设置详解
配置Ubuntu tftp服务的步骤:1、安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetdsudo apt-get install tftpd tftp xinetd2、建立配置文件在/etc/xinetd.d/下建立一个配置文件tftpsudo vi tftp在文件中输入以下内容:service tftp{socket_t转载 2014-09-28 13:34:09 · 1814 阅读 · 0 评论 -
Logcat 与 demsg 区别
LOGCAT-- This is used in Android , to see the different messages written by the activity managers inside the Android , u see android also uses the linux kernel , but what it does is, once the kernel b转载 2015-09-08 10:44:35 · 1232 阅读 · 0 评论 -
oops
http://blog.csdn.net/richardysteven/article/details/6029339转载 2015-12-06 17:11:28 · 343 阅读 · 0 评论 -
ANR 总结
ANR主要有:1、KeyDispatchTimeout 按键触摸事件派发超时(5s)2、BroadcastTimeout 广播阻塞(10s) 尽量不要在onReceive中做耗时处理3、ServiceTimeout 服务超时(20s)超时原因:1、当前的事件没有机会得到处理(即UI线程正在处理前一个事件,没有及时完成,或者looper被某种原因阻塞了)2、原创 2017-08-17 13:15:10 · 295 阅读 · 0 评论 -
fork进程
任务队列是一个双向循环链表产生进程机制:fork() + exec() //exec:负责读取可执行文件并将其载入地址空间中运行fork()使用写时拷贝实现, 只有在需要写入时,数据才会被复制,从而使各个进程拥有各自的拷贝fork()之后,子进程先执行(内核有意选择子进程先执行),因为一般子进程都会马上调用exec()函数,这样可以避免写时拷贝的额外开销,如果父原创 2017-09-09 18:43:48 · 365 阅读 · 0 评论 -
进程调度
进程分为:I/O消耗型 和 处理器消耗型分配处理器使用比:Linux CFS(完全公平调度调度算法)调度器并没有直接分配时间片到进程,它是将处理器的使用比分配给进程,nice值作为权重将调整进程所使用的处理器时间比。调度器类:Linux调度器以模块方式提供(允许不同类型的进程可以有针对性的选择调度算法),这种模块化结构被称为调度器类,每个调度器都有一个优先级,它会按原创 2017-09-10 21:45:34 · 302 阅读 · 0 评论 -
创建最小根文件系统
创建最小根文件系统: (1)/dev/console /dev/null (2)/init=>busybox init本身就是busybox (3)/etc/inittab 配置文件 (4)配置文件指定的应用程序 (5)C库创建设备文件 :先查看pc(sever)机上这两个设备文件 ls /dev/console /dev/null -lmkdir dev原创 2014-03-15 22:34:37 · 389 阅读 · 0 评论 -
busybox的配置、编译
busybox-1.13.4的配置、编译编译busybox-1.13.4需要GCC3.X以上版本。下载、解压后为selfmake_cross-3.4.4.tar.gz,将其释放到目录 /usr/local/arm 目录下,编辑 /etc/profile 加入如下内容:PATH=$PATH:/usr/local/arm/3.4.4/bin并运行:# source /etc/pro转载 2014-03-14 21:09:08 · 460 阅读 · 0 评论 -
根文件系统init进程分析
U-boot:启动内核内核 :启动应用程序内核启动的第一个应用程序是/sbin/init,启动的最终目的是启动其他的应用程序。init程序 (1)读取配置文件 (2)解析配置文件 (3)执行应用程序(根据配置文件)配置文件:(1)指定应用程序(2)什么时候执行busybody->init_main (init进原创 2014-03-14 20:01:26 · 527 阅读 · 0 评论 -
认识shell
shell的作用:一般用户通过Shell来跟内核通信(内核:管理整个计算机硬件的是操作系统的内核,内核是需要被保护的,如果被用户随意),为用户提供操作系统的一个接口。 Shell只是为用户提供操作系统的一个接口,因此Shell包含可以调用的其他软件,如: man, chmod, chown, vi, fdisk,mkfs 等命令,这些命令都是独立的应用程序,我们可以通过Shell来操作这些应用程序原创 2014-02-24 21:02:10 · 415 阅读 · 0 评论 -
Tftp
Tftp服务器——安装 1. 如果利用如下命令能够看到服务器已启动,则不用安装 #netstat -a | grep tftp 已安装结果: udp 0 0 *:tftp *:*2. 如果没有安装,执行如下命令安装 #rpm -ivh tftp-server-0.42-3.1.i386.rpm3. 建立tftp 的主工作目录 #mkdir /tf转载 2014-02-26 13:43:24 · 478 阅读 · 0 评论 -
GCC
GCC通过后缀来区别输入文件的类别。编译和运行程序: #gcc hello.c -o hello 编译 #./hello 运行gcc 最基本的用法:gcc [options] [filenames] options:是编译器所需要的编译选项;filenames :是要编译的文件名; -o output_filename :确原创 2014-02-26 18:25:07 · 482 阅读 · 0 评论 -
GDB
GDB是GNU发布的一款功能强大的程序调试工具。1.编译原创 2014-02-27 08:21:37 · 449 阅读 · 0 评论 -
进程及进程间通信IPC
进程三态:就绪、执行、阻塞。进程ID(PID):标识进程的唯一数字,父进程的ID(PPID),启动进程的用户ID(UID)。进程互斥:是指当有若干进程都需要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。 临界资源:操作系统中将一次只允许一个进程访问的资源称为临界资源。进程中访问临界资源的那段程序代码称为临界区。原创 2014-02-27 13:41:15 · 628 阅读 · 0 评论 -
pthread
pthread和进程相比,线程是一种非常“节俭”的多任务操作方式。线程间代码段、数据段、堆栈都是共享的。运行于一个进程中的多个线程,它们之间使用相同的地址空间,而且线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,一个进程的开销大约是一个线程开销的30倍左右。线程间方便的通信机制,对于不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间的通信的方式进行,原创 2014-02-27 16:08:33 · 488 阅读 · 0 评论 -
内核模块编译
Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用需要的组件:方法一:把所有的组件都编译进内核文件,即:zImage或bzImage,但这样会导致两个问题:一是生成的内核文件过大;二是如果要添加或删除某个组件,需要重新编译整个内核。有没有一种机制能让内核文件(zImage或bzImage)本身并不包含某个组件,而是在该组件需要被使用的时候,动态地添加到正在运行的内核中呢?Li原创 2014-02-28 11:06:22 · 590 阅读 · 0 评论 -
bootloader
Bootloader一个嵌入式系统从软件角度来看分为三个层次:1.引导加载程序 (包括固化在固件中的boot程序(可选),和bootloader 两大部分)2.Linux内核 3.文件系统(包括了系统命令和应用程序)一个同时装有BootLoader 、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图:Bootloader——boot paramet原创 2014-03-03 18:03:04 · 608 阅读 · 0 评论 -
LINUX内核经典面试题
原文地址:LINUX内核经典面试题 作者:sunjiangang-ok1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内存的函数有?7) Linux的内核空间和转载 2014-03-05 09:09:13 · 467 阅读 · 0 评论 -
U-boot第二阶段代码分析
U-Boot第一阶段的启动流程。(nandflash启动,把nand的4k代码考到sram中,因为nand没址线,不能映射到内存,所以通过sram进行过度,sram中4k代码把整个uboot拷贝到sdram上,初始化好堆栈,为c语言提供条件,进入uboot的第二阶段! )这个阶段主要是初始化硬件设备,为加载U-Boot的第二阶段代码准备RAM空间最后跳转到lib_arm/board.c中start转载 2014-03-06 21:04:24 · 948 阅读 · 0 评论 -
内核的配置与编译
内核的配置与编译1.清除临时文件、中间文件和配置文件Make clean (remove most generated files but keep the config)Make mrproper(remove all generated files + config files)Make distclean(mrproper + remove editor backup and原创 2014-02-27 22:28:21 · 542 阅读 · 0 评论 -
Linux Makefile.txt 分析
linux 2.6.x Makefile linux-2.6.x makefile linux-2.6.20.6/Documentation/kbuild/makefiles.txt 一、 概述 linux的makefile有五个部分: Makefile:顶层Makefile.config:内核配置文件ar转载 2014-03-12 19:28:42 · 666 阅读 · 0 评论 -
U-boot Start.s
_TEXT_BASE:.word TEXT_BASE.globl lowlevel_initlowlevel_init:/* memory control configuration *//* make r0 relative the current location so that it *//* reads SMRDATA out of FLASH rather转载 2014-03-03 21:55:17 · 522 阅读 · 0 评论 -
nor与nan
1.什么是nand,什么是nor?nand启动与nor启动的区别及联系。(收集整理)答:1)在NOR FLASH里面可以直接执行代码,而在NAND FLASH里面不可以,在2410里面,如果选择NAND启动方式的话,NAND里的代码是被拷贝到RAM里面去执行的。2)NAND FLASH每次取数据前要写入好像是0X55,0XAA才行,而NOR FLASH直接取到数据。3)NO转载 2014-03-03 20:53:12 · 710 阅读 · 0 评论 -
系统调用
系统调用:系统调用是用户空间访问内核空间的唯一手段,除了异常和陷入外,是内核唯一的合法入口提供这些接口主要是为了保证系统稳定可靠,避免应用程序的肆意妄为。。。系统调用出错时C库会把错误写入到errno全局变量,通过系统调用perror()函数,可以把该变量翻译成用户可以理解的错误字符串如果一个系统调用被删除,它所占用的系统调用号也不允许被回收利用,用sys_ni_s原创 2017-09-12 13:04:27 · 349 阅读 · 0 评论