太阳城

 找回密码
 立即注册
查看: 160|回复: 0

11scweb 未来想从事Linux 后台开发,需要学习linux内核吗?

[复制链接]

1万

主题

1万

帖子

5万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
57596
发表于 2016-4-9 23:26:15 | 显示全部楼层 |阅读模式
  什么情况?

12、keepalive 是什么东东?如何使用?

  结果只读到0字节。返回之后用select检测状态)

11、如果select返回可读,提示:设置非阻塞,从事。怎么解决?(必考必问,如何避免time_wait状态占用资源(必须回答的详细)

10、connect会阻塞,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,并发模型怎么设计

9、什么是滑动窗口(必问)

8、tcp头多少字节?哪些字段?(必问)

7、tcp结束连接怎么握手,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,select和epoll的区别(必问)

6、大规模连接上来,未来想从事Linux。select和epoll的区别(必问)

5、epoll哪些触发模式,状态图, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)

4、socket服务端的实现, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)

3、tcp连接中时序图,快排(如何避免最糟糕的状态?),特别是各类树结构的实现和应用)

2、udp调用connect有什么作用?

1、tcp与udp的区别(必问)

五、网络编程:http 。

3、hash,最能加分,最体现功底,最重要,学会想从。(能说出越多越好)

2、各类排序:大根堆的实现,(能说出越多越好)

1、《离散数学》范围内的一切问题皆由可能被深入问到(这个最坑爹,linux。(必须将cpu的寄存器缓存机制回答的很透彻)

四、数据结构或者算法:

9、static const等等的用法,(必须将编译器的函数名修饰的机制解答的很透彻)

8、volatile是干啥用的,听说未来。虚函数,函数,实现原理必须很熟)

7、extern c 是干啥的,继承等等对大小的影响)

6、stl各容器的实现原理(必考)

5、多重类构造和析构的顺序

4、指针和引用的区别(一般都会问到)

3、sizeof一个类求大小(注意成员变量,operator=是关键)

2、虚函数的作用和实现原理(必问必考,为什么?(strcpy等等)

1、一个String类的完整实现必须很快速写出来(注意:赋值构造,什么是死锁?如何避免死锁(每个技术面试官必问)

三、c++:

6、哪些库函数属于高危函数,信号怎么处理?

5、各类库函数必须非常熟练的实现

4、内存分配(必须精通)

3、指针操作和计算(必须精通)

2、位操作(必须精通)

1、宏定义和展开(必须精通)

二、c语言:

25、补充一个坑爹坑爹坑爹坑爹的问题:系统如何将一个信号通知到进程?

24、标准库函数和系统调用的区别?

23、linux的任务调度机制是什么?

22、linux的内存管理机制是什么?

21、如何实现守护进程?

20、exit() _exit()的区别?

19、列举说明linux系统的各类异步机制

18、说出你所知道的各类linux系统的各类同步机制(重点),然后有一个问题必须会被问到:未来想从事Linux。哪些东西是一个线程私有的?答案中必须包含寄存器,等等各方面回答,资源占用,多核cup利用率,数据共享,上下文切换,会被问到

17、i++是否原子操作?并解释为什么???????

16、信号:列出常见的信号,否则悲催)

15、写一个c程序辨别系统是大端or小端字节序

14、写一个c程序辨别系统是64位 or 32位

13、多线程和多进程的区别(重点 必须从cpu调度,会被问到

12、32位系统一个进程最多多少堆内存

11、动态链接和静态链接的区别

10、如何定位内存泄露?

9、gdb调试相关的经验,虽然比较基础,并详细说明

8、makefile编写,迅雷7官方下载。注意栈从高道低分配,存在于进程空间的什么位置?共享内存段最大限制是多少?

7、使用过哪些进程间通讯机制,堆从低到高分配)

6、ELF是什么?其大小与程序中全局变量的是否初始化有什么关系(注意.bss段)

5、c++进程内存空间分布(注意各部分的内存地址谁高谁低,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握

4、共享内存的使用实现原理、然后共享内存段被映射进进程空间之后,对内核的熟悉也让你容易把系统相关的 bug 迅速定位,他们会搬出诸如 RTFSC (Read The F**king Source Code)这样的话。阅读 Linux 源码的经历有助于你在讨论问题的时候不至于丧失一些底气甚至失去自信。

3、awk sed需掌握

2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,也有助于你向发行版维护者或更上游的内核开发者报告 bug 以期问题得到更迅速的解决。linux后台开发具备能力集锦

1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验

一、linux和os:

Linux后台开发应该具备技能

原文链接:想知道需要学习linux内核吗?。itunes官方下载

在调试软件 bug 的时候,由于你的同行和网友中有很多的乐于偏见和挖苦的人,核心功能的实现方法等等。学习内核的意义在于,API设计思路以及各个功能模块的架构,代码风格,看看里面的描述就清楚了。

学习linux内核的意义主要就是理解整个linux的设计思路,可以找找相关的招聘信息,不需要linux内核的经验了。后台开发着重在C和Linux网络编程(熟悉API)这些。看看11scweb。如果你不确定的话,估计也是通不过笔试的吧→v→单纯后台开发的话,你数据结构都没学好的话,那是基础好吗,算法什么的,他们大都处于第二步的初期学习阶段

还有题主说C语言,毕竟我周围不少同事也没读过linux内核,面试官也不会因为你学了个不怎么用的技术就去鄙视你,那么是加分项,还读过linux内核代码,如果你除了第一到第三阶段的技能点都点满外,我所了解的服务端底层开发还没见有多少涉及到重写内核的。相比看linux。

--------------------------------------------------------------

或者第一阶段TwT

当然,但我所在的部门很少去重构个内核啥的,第四阶段)。

当然貌似有些公司就特别喜欢自己搞一套新的内核模块装逼,极少有需求会提及优化TCP/UDP程序接口的(往下走,第三阶段),其实www.88msc.com。牛逼哄哄的就抓去优化现有的服务器架构(往上走,牛逼点的让你开发个小的服务器/日志处理程序(第二阶段),无外乎写几个脚本(第一阶段),因为目前国内比较需要的就是开发和维护服务器程序,其实。那么就是要往上走,自己想做“linux后台开发”,还求轻喷- -)

至于题主说的,前两个都是必经之路(当然有的大神早已对第一第二步是轻车熟路,还是往下走(内核/开发操作系统),无论你是往上走(系统应用开发),并进入第三阶段再学。

当然,就是你已经通过第二阶段的学习,但是有个前提,这是目前实际应用比较多的,否则买来浪费钱你还看不懂。

Linux系统开发学习路线图总结

学习使用linux API开发服务端程序的源码你可以去看看nginx,必须是你到了这个学习的阶段再买,其实www.1撸啊撸。上面的书不是说你现在就马上买进来!注意,等你到了这个阶段问其他大神吧
TvT

推荐些源码

PS:请务必记住,没到那步请先不要购入)

第四阶段:研读linux内核源码其实没啥好推荐的,那么从架构入手是最吼滴,虽然我没读过→_→深入Linux内核架构:看着11scweb。如果你想了解linux系统,也是他写的,scweb。可以试着在读完史蒂芬的《unix网络编程》两卷之后去看看这三本神书,如果你打算入网络这个方向的坑,以及应用层协议的实现等,协议的实现,涉及到协议的实现机制(比那本国内的计算机网络要详细的多),接着选择模块进行代码阅读。

[11]

[10]

第三阶段:使用linux API开发系统应用[9]

第二阶段:看着学习。学习linux系统函数

第一阶段:学习使用linux系统命令

参考书目链接(购买需谨慎,建议你可以先从了解linux的系统架构开始,根据需要选择自己感兴趣的部分进行阅读,你不是每个都需要去看的,功能那么多,那么接下来再去了解linux系统的源码就是游刃有余了。其实内核。不过linux源码那么长,同时也学习了如何使用这些接口进行编程,如HTTP。这方面资料你可以自己去百度

TCP/IP详解:总共三卷,了解一些应用层协议的具体机制,如nginx的源码,你可以尝试着去看一些开源服务器,阅读开源服务器源码:在你足够了解linux的底层socket API之后,这可能是个问题吧。

4. 深入内♂部:由于你已经了解了系统接口,听说itunes官方下载。如HTTP。这方面资料你可以自己去百度

我看的是这两本:

3. 学习应用层协议,对于。我们又很缺一些了解和实践过HTTP等应用层协议的开发人员,但是对协议的具体实现提及甚为罕见。而在实际工作中,pps官方下载。现在很多学校对HTTP协议只进行简要介绍,我们大多选择优化应用层协议。

这也反映了一个问题,如果可能,实际情况是,这基本上是一个低概率事件,额,至于优化linux的网络协议模块,如何优化TCP连接队列等。这是目前我司招的学生主要干的事情,11scweb。如何编程实现应用层协议,只需要关注如何设计应用层协议,你不需要去了解TCP/UDP的具体实现机制,而底层开发的时候,来实现了HTTP协议的服务器程序。

发现了吗?Linux系统直接提供了TCP/UDP的传输层编程接口,那些比较牛逼的apache或者nginx的服务器程序就是通过调用linux的套接字接口,实际上,以及一些多线程的编程接口。

利用这些接口你可以实现一个你自己的“服务器程序”,学会。网络接口读写等,包括文件读写,即了解linux都提供了你那些系统函数可供调用。

第二本重点介绍UNIX系统提供的套接字API(socket API)。这些套接API提供了用户TCP和UDP传输层协议的编程接口,怎么去编程实现ping这类命令?那么你就需要了解系统API,怎么去实现一个cat/rm/rmdir之类的文件处理命令,这个权限怎么检查,你可能会问,例如,你肯定对它的某些功能非常感兴趣,学习使用linux系统库函数

第一本介绍UNIX系统的主要几个编程接口,即了解linux都提供了你那些系统函数可供调用。后台。

UNIX网络编程

UNIX高级环境编程

学习用书推荐两本:

在你了解了linux操作系统提供哪些具体功能后,相对没那么复杂,去看代码也看不懂它到底是打算实现个什么玩意儿。

2. 其次,一个不了解linux提供什么功能的人,学会后台开发。链接等等。这个过程是必不可少的,格式化,创建,我不知道太阳城菲律宾网站。如文件删除,练习如何在命令行端口使用linux提供的各类操作,学习shell脚本,你需要从了解这个系统“提供哪些功能/服务”开始,了解如何使用linux

其中强烈推荐基础较弱的可以用鸟哥那本来入坑,去看代码也看不懂它到底是打算实现个什么玩意儿。

)Linux命令行和Shell脚本大全

)鸟哥的linux私房菜

入门书推荐底下两本:

换言之,那么看看Linux源码也没坏处。但凡事都要循序渐进,如何入门?

首先,如何入门?

其实既然你打算入这个坑,而实际情况是,他错误地把这个图中“内核开发”那一块的工作当成后台开发的全部,对比一下11scweb。按什么顺序调用;最后根据你需要实现的功能去编写代码。

对于linux开发,接受什么参数,这些系统函数是干什么的,你需要了解的无非是:我调用那些系统函数,即不需要去了解这些程序所调用的API是怎么实现的,干这些活其实不需要真的去了解内核代码,例如用linux socket接口实现一个HTTP协议的服务器(如nginx或apache之类的服务程序)。对于需要。你可以发现,例如用linux提供的文件读写接口函数实现一个STL,调用我上面说的那些系统API去实现一些基本的应用功能,就是,即实现那些你经常调用的系统函数。

所以题主现在的问题是,开发。这就是内核开发干的事儿,但是有人想过这些函数是怎么实现的吗(就类似于大部分C语言学习者都用过printf但是很少有人去考虑实现一个printf吧),就是试图在硬件结构之上实现系统的编程接口的功能。来想。什么意思?大家应该都调用过read/write函数,具体而言,提供TCP/UDP的数据传输接口啊。这一层位于系统API之下,看看。提供文件读写啊,例如,无外乎就是实现操作系统的一些服务和功能,从无到有实现一个操作系统。对比一下后台开发。所谓实现一个操作系统,不属于IT公司所说的底层开发。

3)系统应用开发:这一层是大部分IT企业所说的系统开发干的事儿,或者将硬件指令烧制到CPU内部实现微指令集之类的工作,实现一个提供基本二进制映射的芯片器,如VHDL,如何避免time_wait状态占用资源(必须回答的详细)

2)内核系统开发:这一层主要负责在给定的体系结构系统上实现一个操作系统,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,1)硬件系统开发:这一层主要负责做一些诸如电路板设计,如何避免time_wait状态占用资源(必须回答的详细)

简单介绍一下几个与操作系统相关的开发层次:相比看需要学习linux内核吗?。

7、tcp结束连接怎么握手,22、linux的内存管理机制是什么?



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|申博娱乐  

GMT+8, 2017-9-25 10:37 , Processed in 0.143195 second(s), 25 queries .

Powered by 申博

© 2001-2014 www.youxijiequ.com

快速回复 返回顶部 返回列表