真正想学好linux系统,还是要研究linux内核源码。我们知道,在linux里,不同的应用程序可以共享一个动态链接库,这又是怎么做到的,无论是使用linux里面的一些命令,还是做linux应用层的开发,其实都是在使用linux内核的功能,但是其实你对linux底层的机制并不了解。

1、如何才能学好linux?

如何才能学好linux

真正想学好linux系统,还是要研究linux内核源码。为什么这么说呢?无论是使用linux里面的一些命令,还是做linux应用层的开发,其实都是在使用linux内核的功能,但是其实你对linux底层的机制并不了解,长远来看,其实对你技术的提升不大。比如:1.你天天使用linux里的docker命令,那你知道docker是如何做到这种隔离性的吗?2.你写linux应用程序,会看到入口是main()函数,

那么,问题来了,为什么是main()呢?为什么不是hello()、不是fuck(),不是love()呢?3.你写linux应用程序,也会用write()函数。这个write函数,我们代码里并没有实现它,那是谁实现了它?是c库吗?有可能,但是如果我是写磁盘呢?c库能做到吗?显然不能!还是需要linux内核的功能。

4.我们知道,在linux里,不同的应用程序可以共享一个动态链接库,这又是怎么做到的?不是说进程是隔离的吗?为什么对动态链接库就不做隔离了?5.linux应用层调用malloc是直接调用到内核吗?很显然不是!c库里也有内存管理,c库里的内存管理单元会向内核批发内存(以page为单位),然后向应用程序零售内存(更小的粒度,可以是int大小,char大小等)6.linux里进程和线程的共同点和差别究竟是什么?不要拿教科书里那一套来说教,从代码里得到的才是真知,

2、自学Linux怎么学?

自学Linux怎么学

新手自学linux,需要制定详细的学习路线和学习内容,可以按照以下思路学习:第一阶段:linux基础入门Linux基础入门主要包括:Linux硬件基础、Linux发展历史、Linux系统安装、xshell连接、xshell优化、SSH远程连接故障问题排查、Linux基础优化、Linux目录结构知识、Linux文件属性、Linux通配符、正则表达式、Linux系统权限等。

第二阶段:linux系统管理进阶linux系统管理进阶包括:Linux定时任务、Linux用户管理、Linux磁盘与文件系统、Linux三剑客之sed命令等,第三阶段:LinuxShell基础LinuxShell基础包括:Shell编程基础、Linux三剑客之awk命令等。第四阶段:Linux网络基础,

第五阶段:Linux网络服务Linux网络服务包括:集群实战架构开始及环境准备、rsync数据同步服务、Linux全网备份项目、nfs网络存储服务精讲、inotify/sersync实时数据同步/nfs存储实时备份项目等。第六阶段:Linux重要网络服务Linux重要网络服务包括:http协议/www服务基础、nginxweb介绍及基础实践、nginxweb、lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统、nginx负载均衡、keepalived高可用等,

第七阶段:Ansible自动化运维与Zabbix监控,Ansible自动化运维与Zabbix监控包括:SSH服务秘钥认证、ansible批量自动化管理集群、zabbix监控等。第九阶段:大规模集群高可用服务(Lvs、Keepalived)第十阶段:JavaTomcat服务及防火墙Iptables第十一阶段:MySQLDBA高级应用实践MySQLDBA高级应用实践包括:MySQL数据库入门基础命令、MySQL数据库进阶备份恢复、MySQL数据库深入事务引擎、MySQL数据库优化SQL语句优化、MySQL数据库集群主从复制/读写分离、MySQL数据库高可用/mha/keepalved等。


文章TAG:linux  Linux  学好  自学  怎么学好linux  
下一篇