百面嵌入式专栏(面试题)Linux驱动题
嵌入式Linux驱动题
linux内核里面,内存申请有哪几个函数?
kmalloc() __get_free_page() mempool_create()
spinlock自旋锁是如何实现的?
自旋锁在同一时刻只能被最多一个内核任务持有,所以一个时刻只有一个线程允许存在于临界区中。这点可以应用在多处理机器、或运行在单处理器上的抢占式内核中需要的锁定服务。
请简单介绍一下Linux中的信号量。
Linux中的信号量是一种睡眠锁。如果有一个任务试图获得一个已被持有的信号量时,信号量会将其推入等待队列,然后让其睡眠。这时处理器获得自由去执行其它代码。当持有信号量的进程将信号量释放后,在等待队列中的一个任务将被唤醒,从而便可以获得这个信号量。
一个32位的机器,该机器的指针是多少位?
指针是多少位只要看地址总线的位数就行了。80386以后的机子都是32的数据总线。所以指针的位数就是4个字节了。
char* s="AAA";printf("%s",s); s[0]='B'; printf("%s",s);
有什么错?
“AAA”是字符串常量。s是指针,指向这个字符串常量,所以声明s的时候就有问题。 cosnt char*s=”AAA”; 然后又因为是常量,所以对是s[0]的赋值操作是不合法的。
下面程序结果是?
main() { inta[5]={1,2,3,4,5}; int*ptr=(int*)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); }
结果为:2
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Linux操作系统笔试面试真题 文章被收录于专栏
首先我们都知道,操作系统是所有软件的基础,所有上层软件都要依赖于操作系统提供的各种机制,才能运行。 而我在工作中也认识了很多技术大牛,根据我的观察,他们的基本功往往十分扎实,这对他们的架构视野、技术成长都十分有帮助。 可以说,操作系统作为计算机的灵魂,眼前的工作、日常的生活,甚至这个行业未来的“诗与远方”都离不开它。