首页 >>  正文

linux内核设计与实现

来源:baiyundou.net   日期:2024-09-24

Linux入门本身是没有很大的难度的,但是重点并不在Linux知识本身,而在于你是否拥有坚持不懈的毅力。但是学习Linux一定是个十分煎熬的过程,天天面对着黑乎乎的窗口,敲击着不同的命令。对于习惯了Windows系统操作的每个同学,Linux一切都显得那么格格不入。甚至会感到为什么这个系统如何反人类,还是那么多人在用?那么多人在推崇这个系统。

但是我想劝诫每个同学,静下心来慢慢学习,当你学会大部分基础命令可以完成一些操作的时候,你再回过头来你会发现Linux其实很简单,你就会明白Linux这个系统真正的意义在哪。

首先我先推荐几本书籍,有些书籍我看过多次。

推荐书籍:

《Linux从入门到精通》:

《Linux系统命令及Shell脚本实践指南》:

《Linux就该这么学》第2版:

《Linux内核设计与实现》:

《鸟哥的Linux私房菜 : 基础学习篇》:

鸟哥这本书更像式以本字典,比较厚重,新手会枯燥。对于各位刚入门的同学来说我比较推崇《Linux就该这么学》第2版,因为它本身书记厚度没有鸟哥那本那么厚,我自己读过第一版,是基于rhel7的正在看的这个第二版是基于rhel8,重点比较突出,而且覆盖了绝大部分重点知识,对于初学者十分友好,学会这本书基本上可以达到初中级的阶段了。而且这本书还配套有官网,可以在线免费看这本书,可以先去官网https://www.linuxprobe.com/ 体验一下再决定要不要买。这个网站还包含一些技术资讯和Linux技术干货。也就是说我们还可以在这个官网上学习到其他除了linux之外的其他技术。

接下来说下不同阶段需要学习Linux的技术。

初级入门:

1、 Linux操作的基本命令(比如ls,cd,mkdir,rm…)

可以参考Linux命令查询网站的列表:https://www.linuxcool.com

2、Linux用户,权限,及其配置文件

3、Linux系统进程操作和管理

4、linux文本,文件处理命令(比如vim、grep、sed、awk、find等命令)

5、shell脚本基础知识(可以编写小型程序即可)

6、yum,rpm等软件包管理工具的使用,学会安装管理卸载软件

7、磁盘存储管理,内存管理

进阶:

1、TCP/IP网络基础知识,懂得如何配置网络,搭建局域网和修复网络问题

2、Linux在企业和工作中最常用的几种服务需要会配置和管理,如dns、http、ftp、mail、nfs等

3、防火墙操作,如iptables安全策略构建,防火墙实现数据包过滤和转发等操作

4、shell脚本进阶,这个时候就不能仅仅是一些简单的demo案例了,需要可以结合工作视实际来进行

5、mysql高级应用,不仅仅是增删改查,还用懂得mysql的优化,用户权限的配置,以及审计功能等操作

6、系统安全比如selinux等的使用

7、主流服务器搭建及故障排除

高级提升:

1、 负载均衡,主从复制等技术是必会的,对nginx,lvs等有知识有一定的了解

2、 会搭建和管理集群,比如keepalived等

3、 运维监控zabbix会使用和监控哪里出现问题

4、 自动化运维,会编写复杂shell脚本和python脚本等

5、 对云计算有了解和应用,比如目前流行的docker,openstack有一定的认知和理解,对kvm等虚拟化技术也有清晰的理解

总结

运维工作已经不是搬搬服务器、扛扛交换机、配配网络的时代了,现在运维工作应该以“降低成本,提升用户体验”为目标。保证系统稳定、高可用、可扩展性强,这样就要求运维工程师具备过硬的Linux技能。我们在学习过程中一定要注意基础知识的积累,不要认为一些基础知识十分简单,就可以随便看一眼就略过去。最重要的其实就是基础知识。这些基础知识才是真正能够构建起你以后知识体系的地基。Linux的知识都是一点一滴积累出来的。很多学习Linux的同学,都是学了两天就学不下去了,因为面对着黑乎乎的窗口,很多人 认为没有任何成就感,而且学了这些感觉也没啥真正意义上的进步,所以半途而废的就占了大多数。但是如果你坚持下来的话,你会很快发现Linux会让你真正理解很多计算机底层知识。

更加值得一提的是,无论你以后是否做运维工作。只要你从事互联网和软件相关行业,Linux都值得你去学习,因为Linux这门技术并不仅仅局限于运维工作者。生活中的各个方面都有linux在背后做支撑。

以上就是我对不同阶段学习的技术知识做的总结。大家也可以制定属于自己的目标和计划来循序渐进学习Linux。Linux这门技术需要多年的深耕才能不断提高,切记半途而废,所以不要停下学习的脚步。

","force_purephv":"0","gnid":"96ecdc5d518d5312a","img_data":[{"flag":2,"img":[{"desc":"","height":"341","title":"","url":"https://p0.ssl.img.360kuai.com/t016d550f8972c75915.jpg","width":"589"},{"desc":"","height":"360","title":"","url":"https://p0.ssl.img.360kuai.com/t01c17a55a5bea04773.jpg","width":"250"},{"desc":"","height":"356","title":"","url":"https://p0.ssl.img.360kuai.com/t0102d8485ca8cbaf1b.jpg","width":"253"},{"desc":"","height":"363","title":"","url":"https://p0.ssl.img.360kuai.com/t018c20ecff84677b7f.jpg","width":"289"},{"desc":"","height":"301","title":"","url":"https://p0.ssl.img.360kuai.com/t01e986974dd289d0ce.jpg","width":"217"}]}],"original":0,"pat":"art_src_6,fts0,sts0","powerby":"cache","pub_time":1659184740000,"pure":"","rawurl":"http://zm.news.so.com/e04ea700994d10131805d4a59c494534","redirect":0,"rptid":"45f9ffc4a2dd1bd5","s":"t","src":"站长之家","tag":[{"clk":"ktechnology_1:linux","k":"linux","u":""},{"clk":"ktechnology_1:mysql","k":"mysql","u":""}],"title":"如何平稳入门并掌握Linux系统?

鲍重屈1666学习Linux内核能用来干什么 -
冷薛光19146482194 ______ 我个人的理解是:1、了解Linux内核的具体工作细节,对我们系统编程来说是非常有用处的,比如你了解了某个系统调用在内核中是怎么实现,用起来就会更加得心应手.2、学习Linux内核的工作原理和具体实现细节,本身就是一种挑战,内核...

鲍重屈1666Linux内核的功能是什么? -
冷薛光19146482194 ______ 内核是一个操作系统的核心,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性.内核以独占的方式执行最底层任务,保证系统正常运行.协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等. 严格说Linux并不能称做一个完整的操作系统.我们安装时通常所说的Linux,是有很多集合组成的.应称为GNU/Linux. 一个Linux内核很少1.2M左右,一张软盘就能放下.

鲍重屈1666linux的内核(kernel)有哪几个部分组成?主要完成什么任务? -
冷薛光19146482194 ______ 内存管理,进程管理,系统调用,中断,驱动

鲍重屈1666Linux的内核能不能编辑?
冷薛光19146482194 ______ 可以是可以但是简单说,Linux内核编程就是开发Linux驱动程序,学会内核编程后,将会对操作系统的内部机制和工作原理有充分了解,可以从事硬件驱动开发、嵌入式系统开发等.内核编程的语言仍是传统的C语言,但其编写方法和调用接口与传统应用程序的差别较大,你必须了解如何处理中断、如何在内核态和用户态之间转换、PCI、DMA、内核地址映射、内核I/O等,这不是《UNIX高级编程》所涉及的内容,可以找一本专门讲Linux驱动编程的书看看,或在网上搜寻相关资料(关键词:Linux DDK).不过先提醒一句,学习内核编程的难度很大,必须做好长期心理准备

鲍重屈1666linux内核模块设计时,选用的内核版本需要与现在用的linux系统版本相同吗? -
冷薛光19146482194 ______ 有一段时间 ATI 的显卡驱动就比较坑.所以最好还是你的目标是什么版本.2.一点都不差最好. 这里主要牵扯着测试的问题看你开发目标是什么版本,这个版本要对应.假设你学习开发 2.4.2 的内核模块,你却用 3.2.2 的内核源代码肯定是不通用的.再假设你未来要给一个运行着 2.6.18 内核的设备开发一个驱动.但有的地方轻微的版本不同就有兼容问题.这主要看内核接口的变化情况了,开发出来的东西肯定也不行.不过这个也两说,有的地方其实还是有通用可能的,你却用 3.11 内核.因为总是跟不上内核的开发进度,老是不能兼容最新的内核……现在内核接口好很多,你就用什么版本,不需要每个版本都有变化了,但这个也很难说什么时候又变了

鲍重屈1666linux内核机制有哪些 -
冷薛光19146482194 ______ 在学习linux内核同步机制之前,先要了解以下预备知识:(临界资源与并发源) 在linux系统中,我们把对共享的资源进行访问的代码片段称为临界区.把导致出现多个进程对同一共享资源进行访问的原因称为并发源. Linux系统下并发的主要来...

鲍重屈1666linux内核结构问题 -
冷薛光19146482194 ______ 微内核结构,就是内核除了提供对硬件和应用层的接口外,就是内核只负责硬件和软件的通信,其它功能都有外部程序来完成,这样的话可以减少内核的bug,但对于桌面系统来讲,尤其是图形化系统来讲,可...

鲍重屈1666Linux内核大小取决于什么? -
冷薛光19146482194 ______ 1、内核实现的是系统最基本的功能,提供的是机制,而应用程序是策略级. 2、内核包括启动和初始化代码、中断和系统调用(以及异常处理)、进程管理、内存管理、文件系统、设备驱动、同步和进程间通信等几部分,占源代码空间最大的是驱动这块.由于内核以汇编和c编制,内核高手们都是黑客级别的高水平编码牛人,在以大集市方式下开发,再由linus和其助手这样的宗师级人物审核,能够加入内核的代码当然是精巧异常,性能自不必说,代码占用空间当然也很小.

鲍重屈1666Linux内核中流量如何控制?
冷薛光19146482194 ______ 1. 前言linux内核中提供了流量控制的相关处理功能,相关代码在net/sched目录下;而应用层上的控制是通过iproute2软件包中的tc来实现,tc和 sched的关系就好象...

鲍重屈1666高性能LinuxKernel项目是什么?
冷薛光19146482194 ______ 旨在提供高Linux kernel性能的项目LinuxDNA,本月初成功实现用Intel C/C++编译器(ICC)编译了Linux kernel 2.6.22,不仅没有编译错误,而且完全可充当一个完整...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024