2007年12月10日星期一

Linux

Debian/ubuntu/kubuntu
Redhat/Fedora
SUSE
Slackware
Mandrake/Mandriva
Gentoo
Koppix

FreeBSD
Solaris

AIX

(转贴)浅谈如何学习linux

《UNIX环境高级编程》
《UNIX环境网络编程》(共两卷)
《TCP/IP详解》(共三卷)

有一本Brian Kernighan和Rob Pike写的《UNIX Programming Environment》
如Beginning Linux Programming。

我编译过其中一些程序,好像都可以用啊。我用的是linux redhat9.0版
将makefile里的make ‘systype.sh’ 注释掉。用你的系统类型代替,
我的就用:make svr4。
有些路径要修改。
我在试上面的程序的时候发现有些头文件找不到。比如。我用的RH9。是不是在linux下要做一些配置?

《Unix环境高级编程》在RH9要根据情况作一些变动,但变动很少,找不到某些文件可能内核中没有包含这些文件,在内核中找一下,重新编译

内核

是文件操作权限的相关接口的头文件。
有的, 我用过在, 你再试试

我在SCO openserver Unix下没有碰到类似的问题。
不知道把相关的头文件和lib拷贝过去是否好用。

掌握至少50个以上的常用命令
理解shell管道"|",文件流重定向">"及追加">>"等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习linux环境下的简单组网

1 english
2.shell[sed/awk]
3.Perl/PHP
漂亮的脚本, CGI的首选,比ASP好,应用面很广
6.Java,Python,Tcl,XML

*系统管理篇
在熟悉linux的基础上还需要掌握至少一种unix
我首推Solaris,其次是FreeBSD
比如运营级系统一般是Solaris+Oracle/DB2之类的
学习apache,ssh,sendmail/Qmail,proftp/vsftp,Samba,Squid,MySQL/PostgreSQL/Oracle,Bind
等各种应用服务器的构架及电子商务的应用
熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群
等各种企业级应用解决方案
熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复
系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能

我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员

*深入学习linux

我个人理解的读linux内核需要的基础:
在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),
建议再看一下
《The C Programming Language》Second Edition这本圣经
/*如果想学缓冲区溢出,这点C的功力可能是不够的*/
还有,,,
反正经典书看多了是没有坏处的

2.asm (AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍
有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方****

没有评论: