Author Archives: Zhengheng Li (Mark)

GCC 常用编译选项及相关工具

这篇文章是对 gcc/g++ 经常使用的编译选项和有关工具的一个简单记录,包括静态库和共享库的生成和使用,以便备忘。

UEFI + GPT

在之前的文章《Linux on ASUS N550JK4700》中的系统分区那一节,由于当时我对UEFI不了解,我曾在BIOS中打开了[Launch CSM]选项,意在不使用UEFI,实际上这是一个很糟糕的选择。相比于UEFI,传统的BIOS实在是太落后了。具体的内容可以Google一下或查看Wikipedia,关于 BIOS + MBR 和 UEFI + GPT 的比较,下面作一个简单地介绍。 现代磁盘的内部区块定位一般都采用 LBA 机制,每一个(逻辑)区块又称作一个 Logical Sector(有别于 Physical Sector),区块的编址为一个整数,起始为 0 ,即 LBA 0、LBA 1、LBA 2 …… 每一个逻辑区块的大小为 512B 。磁盘的分区与格式化都是在这个基础上的。先看看大家都熟知的 BIOS + MBR 方案,传统的 BIOS 是运行在 16 位实模式下的,寻址能力十分有限而且运行缓慢,磁盘的分区采用 Master boot record,即在整个磁盘的第一个逻辑扇区(LBA 0)的只有512B的空间里包含了主引导程序和分区表。由于空间的限制,MBR是有很多局限性的:只能有四个主分区,磁盘总大小不能超过2TiB等。UEFI是由Intel公司引入的固件接口,它要比传统BIOS先进得多,它与传统BIOS有一些根本的区别:(1)UEFI直接运行在64位保护模式下;(2)UEFI能直接识别FAT32文件系统,并能读取里面的文件(之所以是FAT格式,是因为历史原因导致FAT格式的跨平台兼容性最好);(3)系统引导程序文件在分区(ESP分区)中,而不是在第一个逻辑扇区中;(4)磁盘分区方案采用GUID Partition Table,即GPT,相对于MBR,这种分区表有很多优势,如主分区的个数(几乎)不受限制。

Linux on ASUS N550JK4700

实际上,ASUS N550JK对Ubuntu 14.04的兼容性是相当好的,包括无线网卡、蓝牙、键盘背光的调节、触摸板的开关、音量的键盘调节都是安装后无需配置直接可以使用的,这是出乎意料的,因为这些功能在Windows中都是只能在安装上华硕的官方驱动后才可以正常使用的,而在Ubuntu中则都是"Works out of the box"。但还有一些其他的细节问题需要调整解决,下面将作一个简要的总结。 1、硬件软件信息 (1)ASUS N550JK4700 (8G/1T) : 2014年3月出厂 Intel Core i7 4700HQ Processor Integrated Intel HD Graphics 4600 + NVIDIA GeForce GTX850M with 4GB DDR3 VRAM 15.6" 16:9 IPS FHD (1920x1080) LED Backlight Non-Glare LCD Panel Keyboard backlight (2)Ubuntu 14.04 LTS : 2014年4月18日(北京时间)发布

生而为赢

——摘自《新东方-生而为赢》 人皆生而为新,为前所未有之存在;人皆生而能赢。人皆有其特立独行之方式去审视、聆听、触摸品味及思考,因而都具备独特潜质——能力和局限。人皆能举足轻重,思虑明达,洞察秋毫,富有创意,成就功业。 “成者”与“败者”含义颇多。淡及成者,我们并非指令他人失意之人。对我们而言,成者必为人守信,值得信赖,有求必应,态度诚恳,或为个人,或为社会一员皆能以真诚回应他人。 成者行事并不拘泥于某种信条,即便是他们认为应为其奉献一生的理念;而是本色行事,所以并不把精力用来表演,保持伪装或操控他人。他们明了爱与装爱,愚蠢与装傻,博学与卖弄之间迥然有别。成者无须藏于面具之后。 成者敢于利用所学,独立思考,区分事实与观点,且并不佯装通晓所有答案。他们倾听、权衡他人意见,但能得出自己的结论。尽管他们尊重、敬佩他人,但并不为他所局限、所推翻、所束缚,也不对他人敬若神灵。 成者既不佯装“无助”,亦不抱怨他人。相反,他们对人生总能独担责任,也不以权威姿态凌驾于他人之上。他们主宰自己,而且能意识到这点。

球协函数图像的绘制

本文利用 Python 编程语言实现归一化球协函数图像的数据准备,并用 Mathematica 绘制图像。 归一化球协函数为: 其中 为连带勒让德函数 时,把 递归到零: 时,把 递归的零: 时,把 递归到零: 利用以上三式就可以通过递归程序定义连带勒让德函数。 下面是 Python 程序代码