了解计算机硬盘及编程;
来源:
笔记:
计算机基础知识:
-
组成:
cpu(运算器、控制器),存储器(主:内存,辅:磁盘等),输入设备(网卡, 键鼠等),输出设备(console,tty等)
-
总线:
控制总线、数据总线、地址总线 。
-
思考:
?内存的物理地址和线性地址:设计的原因 ?CPU指令、指令集:普通指令(ring3)和特权指令(ring0) ?硬件之间如何协调工作 ?系统代码如何启动在cpu上运行起来
-
编程层次:
硬件规格:hardware specification 系统调用:system call 库调用: library call
-
编程语言:
机器指令-汇编语言(微代码)-高级语言: 汇编语言:微码编程,系统中某些与硬件相关的特有代码、驱动程序开发; 高级语言C,C++:系统级应用、驱动程序; 高级应用java,python,php:应用程序 驱动一般是C语言编写的,夹杂少量汇编语言,汇编语言更接近于机器代码,所以性能很好, 但程序编写困难,C语言是比汇编语言更高级更易于实现的一种较底 层语言。高级语言为什么 不直接编译成机器码,而编译``成汇编代码? 1)方便优化和调试。直接编译为机器码时,如果程序运行出错,程序员不得不去分析 海量复杂的机器码来找出问题,既不现实也不效率。 2)分层可以有效地减弱编译器编写的复杂性,提高了效率.就像网络通 讯的实现需要分 成很多层一样,主要目的就是为了从人脑可分析的角度来减弱复杂性。 3)如果把高级语言的源代码直接编译成机器码的话,那要做高级语言到机器码之间的 映射,如果这样做的话,每个写编译器的都必须熟练机 器码。造成编译工作的大量重复
-
UI
GUI:Graphic User Interface CLI:Command Line Interface
-
ABI和API
ABI:Application Binary Interface,应用二进制接口 API:Application Program Interface,应用编程接口
-
CPU架构类型
x86 x64 arm m68000,m68k(摩托罗拉) power(IBM) powerpc(IBM联合Apple等开发) ultrasparc(SUN) alpha(HP) 安腾(HP)
-
操作系统类型:
Windows Linux www.kernel.org Unix: System:(Bell Lab) AIX(IBM) Solaris(SUN) HP-UX(HP) BSD:Berkeley System Distribution NetBSD OpenBSD FreeBSD
-
开源协议
MIT:Richard Stallman GNU:GNU is not Unix; GPL:General Public License
-
程序
指令(只读)+数据(读写);或算法+数据结构 运行程序格式: Windows:exe,dll(dynamic link library); Linux:elf,so(shared object); 程序运行模式: 用户空间; 内核空间; POS(IX):Portable Operating System
拓展:
《奇点临近》
Tip:
1.一万小时定律
2.计算机的工作原理
3.红帽认证(个人不建议考):RHCSA、RHCE、RHCA
4. 博客内容:what,why,when,where,who,how
备忘:
docker,zookeeper,zen,kvm,puppet(ruby),saltstack(python)
,zabbix,spark,storm,cobbler
elk:elaticsearch,logstash,kibana