我从2016年春节过后开始背,背到2017年秋招。面试的时候面试官都快哭了。国内BAT,国外facebook、微软、google的offer全都拿到了。有个创业公司直接开了85W年薪。只要努力,没什么事是办不成的!背完以后的感觉就是,再学几个月的图形学,我可以自己研发一个操作系统!
⑵ 哪些linux源代码是比较核心的
几种主要的Linux版本之间的比较
我们很难从大量Linux版本中选择一款正好适合某个特定环境的版本。每一个版本都有自己的侧重点,有一套自己的文件,安装方式和自己的Linux内核版本。本文我将比较四种主要的Linux版本——Debian,Mandrake,Red Hat,和SuSE—并讨论如何制订选择适合特定商业环境Linux版本的标准。
Debian
Debian Project诞生于1993年8月13日,它的目标是提供一个稳定容错的Linux版本。支持Debian的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员,这种改进吸取了早期Linux的经验。 Debian以其稳定性着称,虽然它的早期版本Slink有一些问题,但是它的现有版本Potato已经相当稳定了。这个版本更多的使用了pluggable authentication moles (PAM),综合了一些更易于处理的需要认证的软件(如winbind for Samba)。 Debian的安装完全是基于文本的,对于其本身来说这不是一件坏事。但对于初级用户来说却并非这样。因为它仅仅使用fdisk 作为分区工具而没有自动分区功能,所以它的磁盘分区过程令人十分讨厌。 磁盘设置完毕后,软件工具包的选择通过一个名为dselect的工具实现,但它不向用户提供安装基本工具组(如开发工具)的简易设置步骤。 最后需要使用anXious工具配置X Windows,这个过程与其他版本的X Windows配置过程类似。完成这些配置后,Debian就可以使用了。 Debian主要通过基于Web的论坛和邮件列表来提供技术支持。作为服务器平台,Debian提供一个稳定的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合适的技术加入。有一点要注意的是:它的当前版本采用的是2.2内核而不是2.4内核。大部分系统管理员注重服务器环境的稳定性,Debian正好能提供这一点。但是,因为2.4版本内核拥有许多2.2版本内核所没有的新特性,所以我认为采用2.2版本内核是Debian的一个缺陷,另外不够友好的磁盘分区设置也是它的一个缺陷。
最后,我给Debian打7分(分数从1到10)。
Mandrake
MandrakeSoft,Linux Mandrake的发行商,在1998年由一个推崇Linux的小组创立,它的目标是尽量让工作变得更简单。最终,Mandrake给人们提供了一个优秀的图形安装界面,它的最新版本还包含了许多Linux软件包。 作为Red Hat Linux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上。但该公司还是支持服务器上的安装,而且成绩并不坏。 Mandrake的安装非常简单明了,为初级用户设置了简单的安装选项。它完全使用GUI界面,还为磁盘分区制作了一个适合各类用户的简单GUI界面。软件包的选择非常标准,另外还有对软件组和单个工具包的选项。安装完毕后,用户只需重启系统并登录进入即可。 Mandrake主要通过邮件列表和Mandrak 自己的Web论坛提供技术支持。Mandrak对桌面用户来说是一个非常不错的选择,它还可作为一款优秀的服务器系统,尤其适合Linux新手使用。它使用最新版本的内核,拥有许多用户需要在Linux服务器环境中使用的软件——数据库和Web服务器。 Mandrak没有重大的软件缺陷,只是它更加关注桌面市场,较少关注服务器市场。因为本文是一篇讨论服务器系统版本的文章,所以这也算是一个缺陷吧。
我也给这个版本打7分。
Red Hat Linux
可能这是最着名的Linux版本了,Red Hat Linux已经创造了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,他们都致力于开放的源代码体系。 Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。 Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和Red Hat那里得到充分的技术支持。 我发现Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户更有吸引力。
而且我个人用的也是他的桌面版哦,我给它打9分。
SuSE
总部设在德国的SuSE AG在商界已经奋斗了8年多,它一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle 和IBM合作,以使他们的产品能稳定地工作。SuSE还开发了SuSE Linux eMail Server III,一个非常稳定的电子邮件群组应用。 基于2.4.10内核的SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区过程也非常简单,但它没有为用户提供更多的控制和选择。 在SuSE 操作系统下,可以非常方便地访问Windows磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SuSE的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。 SuSE拥有界面友好的安装过程,还有图形管理工具,可方便地访问Windows磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。 SuSE也通过基于Web的论坛提供技术支持,另外我还发现它有电话技术支持。
我也给它打9分。
结束语
Linux服务器现在正风靡各个公司,因为它价格低廉,能支持多种服务,所以这种情况可能会持续下去。在我的环境中,我使用了Red Hat服务器,我看重的是它优秀的技术支持和广泛的应用。但是,那些对系统稳定性要求很高的用户应该考虑一下Debian;不熟悉Linux的用户应该选择Mandrake;需要使用数据库高级服务和电子邮件网络应用的用户应当选择SuSE。 选择使用的服务器版本,构建相应环境是工作中的重要一步。我希望本文可以帮助用户理清自己的要求,做好最佳选择。
另外,站长团上有产品团购,便宜有保证
⑶ Linux操作系统源代码有多少行
Linux现在内核版本2.6.34,其中共14002个c文件(9415676行),头文件14069个(2141641行代码),总代码量约1100w行
⑷ Linux内核源代码情景分析适合初学linux的人吗
如果你有一定的c语言基础并且对linux的文件系统比较了解的话,可以直接看linux的内核源码分析
⑸ 我现在想读linux源码,哪个版本最合适
SourceInsight.目前各大知名企业做linux开发,很多都用到。需要注册码,网上可以搜到。然后你用几天时间熟悉软件操作之后,你就可以熟练的查看,更改源代码了。
⑹ 怎么才能背过linux源码
每天背五个函数。我背了3年多,背完了。现在linux任何问题,记住是任何问题,都难不倒我了。
⑺ Linux操作系统的源代码
Linux是一个开放的,自由的类Unix操作系统,它的源代码是公开的, 各个版本的Linux,包括从内核到许许多多的应用程序的源代码, 以及可执行文件都可以免费从互联网上下载。
你也可以通过光盘得到Linux系统,和一般的软件不同的是, 你可以合法的和你的朋友分享Linux光盘。很显然Linux光盘的价格不会很高, 第一,因为你可以免费从网上下载;第二,你可以和你的朋友合伙凑钱买一套Linux光盘, 再和你的朋友分享使用。
Linux和一般的软件不同,是可以和你的朋友分享的。 举个例子来说:
如果朋友家有张非常漂亮的窗子,但是这窗子是95牌的, 那么你仿制是违法的,如果这窗子是X牌的,或者说牌子是GPL, 那么你仿制就不违法。如果你不想违法,但又想要漂亮的窗子, 答案是选择自由软件。选择Linux。
Linux准确的说,是一个系统内核,它是最初在91年, 由芬兰的了不起的学生Linus Torvalds发起, 接着又有全世界的志愿者加入进来开发的。
现在有一些软件公司在做Linux的生意, 着名的有RedHat,SuSE以及Caldera等等, 这些公司发布自己的基于Linux内核的一整套的Linux系统: 这些整套的系统通常包括有:一个C语言及C++编译器,Perl脚本解释程序, 外壳Shell,图形用户界面X窗口系统,包括有X Server以及众多的应用程序等等。
这些整套的Linux系统按照习惯叫做Linux发布(distribution)。 目前使用最广泛的Linux发布是RedHat公司的RedHat Linux。 以前使用广泛的Slackware,现在也还有许多人在使用, 我自己的第一个Linux系统就是Slackware,现在我玩的是Debian, Debian和其他的Linux发布的不同之处在于:Debian是完全由志愿者开发的, 不像RedHat和SuSE,是由软件公司所支持的。
RedHat是使用最广泛的Linux发布,并且RedHat公司现在得到了Netscape, 以及Intel的支持,前景看好,根据一般的看法Redhat也是最容易上手的Linux发布。
SLackware和RedHat相比要稍微复杂一些,这主要是指软件的安装方面, 由于RedHat使用rpm打包系统,安装新软件简单到只要一行命令即可。 而Slackware往往要从源代码重新编译,稍微费事一些。
SuSE也是基于rpm打包系统,SuSE的特别之处在于它对X窗口系统的支持非常好, SuSE的吉祥物是一只绿色的蜥蜴,非常可爱。
Debian基于自己的Deb格式的打包系统,但是它也可以安装rpm软件包。
Linux可以运行在DEC公司的Alpha机上,也可以运行在Sun公司的Sparc机器上。 当然也可以运行在Intel公司的386以上的机器上。 编写的好的源代码可以不经修改的在各种不同的Linux平台上直接编译安装运行, 但是显然,不同的硬件平台之间的可执行文件是不兼容的。 但是一个特别针对Intel机器的rpm软件包是可以轻易的在for Intel的RedHat,SuSE,Debian, 以及Slackware上安装运行起来的。
RedHat,SuSE,Slackware以及Debian等各个发布之间的另一个不同是, 它们都带有自己的系统管理工具。 RedHat使用着名的控制面板+Linuxconf, Debian使用臭名昭着的dselect(为什么说臭名昭着?因为它非常难控制, 我自己只要有可能,就尽量不碰它) Slackware使用pkgtool, SuSE也有自己的管理工具。
Linux是一个开放的操作系统,它的各个部分:内核,应用程序, 库程序是有机的结合的。并不是固定的死死的,碰都不能碰。Linux的内核的版本号是XX.XX.XX格式的,由三个数字组成, 第一个数字是主版本好,第三个数字是辅版本号,中间的数字如果是奇数, 表示这是一个开发版的内核,如果是偶数,表示是一个相对稳定的,可靠的内核。 一般来讲,除非你正在研究Linux内核,或有特别的需要, 否则不要摆弄奇数版本的内核。
今天演示的第三个部分是Linux下的软件。常常有人抱怨Linux缺乏有效的软件的支持, 这在一定情况下的确如此,但是另一方面也是我们对Linux了解太少, Linux平台上现在已经有了相当多的应用软件。 并且Linux正在得到越来越多的厂家的支持。 这段时间炒的非常火的Oracle,Sybase等等大型数据库的Linux版本就是一例。
Linux下不但有类似于PhotoShop的免费的图像编辑软件:gimp, 还有免费的类似于3DS的三维设计软件:MoonLight。 并且所有这些软件,你都可以得到源代码。
Linux下的图形用户界面是基于X窗口系统的, 这也秉承了Linux的一贯传统:开放的,有机结合的。 XFree86只是图形界面的服务器,上面可以运行各种不同的窗口管理器, 现在着名的窗口管理器有AfterStep,WindowMaker,以及Enlightenment。 有的窗口管理器做得非常的漂亮,真是叫做不看不知道,一看吓一跳。 另外,如果你不喜欢花哨的窗口管理器,你可以选择wm2或者9wm, 它们只占用非常少的系统资源,我自己经常使用的就是9wm。
有了X服务器和一个窗口管理器,你就有了图形用户界面。 你就可以运行Gimp或者Moonlight了,甚至你还可以运行Doom和quake!
现在还有一批程序员正在为Linux开发免费的,开放源代码的红色警报。
对Linux的一个最主要的批评是:Linux缺乏支持。 坦白的说,就我自己作为一个个人用户来讲,我觉得Linux的支持非常的好。 我曾经在安装Debian的时候遇到几个问题, 到Debian的Mail List里发信询问了一下,几个小时后就得到了答案。
⑻ 如何编译linux源代码
首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make bzImage、make moles、make moles
4、安装,make install
5、.创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。
最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
⑼ 如何阅读linux源码
阅读linux源代码要掌握一定的386硬件知识,AT&T汇编语言结构,操作系统原理等等基础知识。但是及时掌握这些知识读懂源码还是很困难的(当然掌握操作系统原理也是一件不容易的事情),建议你先去看一下u/cos源代码,根据其源代码试着自己给51单片机写一个小的分时操作系统,移植到单片机上试试效果。然后再根据对u/cos理解自己写一个自己的u/cos,并移植到arm7平台上,一步一步来。。。。。。总之linux操作系统是一个很复杂的软件,它不仅仅要求你对大型软件架构有很深入的认识,还要求你对硬件的操作非常熟悉,我们经常看到在linux系统中常常会有汇编语言与c语言的嵌套。阅读linux源代码不是一件容易的事情,要不断的学习,让我们一起来努力吧!
⑽ 怎样学习并研究LINUX的源码
学习linux最好也最值得去学的是源码分析,因为只有做好了这项工作,才能搞操作系统,尤其是嵌入式系统——一个现在包括以后的很长一段时间内会是一个很热门的东西。可以说LINUx是中国的系统软件,包括嵌入式系统,开发自己的系统,在计算机领域打出一片自己的天下的很好的契机。
有一本书很值得一看,是赵炯的《Linux内核完全注释》,我有电子版本,但太大了,如果你需要可以给我发信息。我可以传给你。不过我还是喜欢看纸版的书,因此我又买了一本。
你也可以去买一本,相信我,这本书很值得买的。