Ⅰ linux系统是哪家公司开发的
Linux 是一个操作系统,就像windows一样。它不属于任何公司,属于完全开放的。最早由Linus
Torvalds编写了内核,后来很多优秀的程序员参与了这一工作。现在看到的不同版本只是不同发
行版而已,比较有名的有Redhat,SUSE, Debian等等,只要是将linux内核,驱动,应用软件打
包发行的,本质上都是可以免费获得源代码的。
(1)linux开发扩展阅读:
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系
统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系
统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代
码被软件厂商严格保密;
MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、
强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教
授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统
内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力
的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源
代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就
是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,
版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成
适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,
至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。
Ⅱ 自己如何开发linux
说明:
你至少要学会一种对应的编程语言,如:C、C++、Shell编程等。
推荐参考书目:
1. 《Linux系统与网络服务管理 技术大全(第二版)》杨明华 谭励等编着 电子工业出版社 79元 含光盘一张;
2. 《Linux系统管理与网络管理》 余柏山等编着 清华大学出版社 89元 含光盘一张。
读完这两本书,基本上就够用了。
建议:
1. 最好在系统中先安装VMware虚拟机,然后在虚拟机中安装Redhat Enterprise Linux 5等Linux系统;
2. 在虚拟机的Linux系统中进行各种测试,这样就算有问题也没有什么关系;
3. 个人推荐Redhat Enterprise Linux 5(RHEL 5),这在企业中应用非常广泛。
Ⅲ linux开发还是windows开发有什么区别
一、Windows系统
1、优点:对比其他的服务器操作系统来说,是非常简单易用的,级大程度降低了使用者的学习成本。
2、缺点:对服务器的硬件要求比较高,而且稳定性不是很好。
3、应用:主要应用于中、低档服务器中。
二、Linux系统:
1、优点:Linux系统是免费开源的软件,受到所有开发者共同监督,是非常成熟的服务器系统,同时拥有者一套完整的权限机制,安全和稳定性都非常不错。
2、缺点:Linux系统需要学习一段时间才可以掌握,难度也高一些。
3、应用:Linux系统适用于中、高档服务器中。
三、Linux与Windows之间的区别是什么?
1、Linux运行速度要快很多,安全性要比Windows系统好;
2、有的软件只能在Windows中运行,在Linux中无法兼容使用;
3、Linux适用于在网络方面;
4、Linux系统操作起来要比较复杂,Windows相对于要简单一些。
Ⅳ linux开发要学什么
第一条:运维应用-->系统架构-->运维开发-->系统开发
第二条:运维应用-->应用dba-->架构dba-->开发DBA
下面详细每个阶段的职位说明:
01.运维应用级别:
这个阶段就是玩别人的软件,例如:linux,nginx,mysql,php,nagios 大多数的linux运维工程师,网络工程师,系统工程师都是这个阶段。 这个阶段属于金字塔的底端,工资是相对比较低的。
02.系统架构级别:
这个阶段就是用已知软件架构大规模集群方案以及实现各种技术方案,属于运维应用上层,需要靠技术,沟通,思想三条线通力配合才能达到这个水平。
03.运维开发级别:
这个阶段就是利用已知语言,开发基本的应用层工具,例如:web管理系统,如果具备前两个运维应用和系统架构的积淀,这个是很轻松可以实现的。
04.系统开发级别:
这个阶段就是修改开源的软件,或者开发新的服务软件(例如:也开发一个web软件,存储软件)与底层软件(例如:OS),是更高一层的开发人员。
05.数据库管理和架构:
这个阶段就是也主要是玩别人的软件,但是数据相对更重要,要求有一定的运维应用的能力。
以上是常规的Linux发展路线,对于想学Linux运维,或正处于Linux运维相关工作的人员,可以根据自身的情况进行定位,选择适合自己的发展路线,往往可以在职场上更加得心应手!
Ⅳ Linux开发需要什么呢需要具备什么基础呢
一、linux和os:
1、命令:netstat tcpmp ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验
2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握
3、awk sed需掌握
4、共享内存的使用实现原理、然后共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?
5、c++进程内存空间分布(注意各部分的内存地址谁高谁低,注意栈从高道低分配,堆从低到高分配)
6、ELF是什么?其大小与程序中全局变量的是否初始化有什么关系(注意.bss段)
7、使用过哪些进程间通讯机制,并详细说明
8、makefile编写,虽然比较基础,但是会被问到
9、gdb调试相关的经验,会被问到
10、如何定位内存泄露?
11、动态链接和静态链接的区别
12、32位系统一个进程最多多少堆内存
13、多线程和多进程的区别(重点 必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的?答案中必须包含寄存器,否则悲催)
14、写一个c程序辨别系统是64位 or 32位
15、写一个c程序辨别系统是大端or小端字节序
16、信号:列出常见的信号,信号怎么处理?
17、i++是否原子操作?并解释为什么???????
18、说出你所知道的各类linux系统的各类同步机制(重点),什么是死锁?如何避免死锁(每个技术面试官必问)
19、列举说明linux系统的各类异步机制
20、exit() _exit()的区别?
21、如何实现守护进程?
22、linux的内存管理机制是什么?
23、linux的任务调度机制是什么?
24、标准库函数和系统调用的区别?
25、补充一个问题:系统如何将一个信号通知到进程?
二、c语言:
1、宏定义和展开(必须精通)
2、位操作(必须精通)
3、指针操作和计算(必须精通)
4、内存分配(必须精通)
5、各类库函数必须非常熟练的实现
6、哪些库函数属于高危函数,为什么?(strcpy等等)
三、c++:
1、一个String类的完整实现必须很快速写出来(注意:赋值构造,operator=是关键)
2、虚函数的作用和实现原理(必问必考,实现原理必须很熟)
3、sizeof一个类求大小(注意成员变量,函数,虚函数,继承等等对大小的影响)
4、指针和引用的区别(一般都会问到)
5、多重类构造和析构的顺序
6、stl各容器的实现原理(必考)
7、extern c 是干啥的,(必须将编译器的函数名修饰的机制解答的很透彻)
8、volatile是干啥用的,(必须将cpu的寄存器缓存机制回答的很透彻)
9、static const等等的用法,(能说出越多越好)
四、数据结构或者算法:
1、《离散数学》范围内的一切问题皆由可能被深入问到(最重要,最体现功底,最能加分,特别是各类树结构的实现和应用)
2、各类排序:大根堆的实现,快排(如何避免最糟糕的状态?),bitmap的运用等等
3、hash, 任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)
五、网络编程:
1、tcp与udp的区别(必问)
2、udp调用connect有什么作用?
3、tcp连接中时序图,状态图,必须非常非常熟练
4、socket服务端的实现,select和epoll的区别(必问)
5、epoll哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认)
6、大规模连接上来,并发模型怎么设计
7、tcp结束连接怎么握手,time_wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免time_wait状态占用资源(必须回答的详细)
8、tcp头多少字节?哪些字段?(必问)
9、什么是滑动窗口(必问)
10、connect会阻塞,怎么解决?(必考必问,提示:设置非阻塞,返回之后用select检测状态)
11、如果select返回可读,结果只读到0字节,什么情况?
12、keepalive 是什么东东?如何使用?
13、列举你所知道的tcp选项,并说明其作用。
14、socket什么情况下可读?
六、db:
1、mysql,会考sql语言,服务器数据库大规模数据怎么设计,db各种性能指标
Ⅵ Linux是谁开发出来的
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red
Hat Enterprise Linux、SUSE、oracle linux等。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,它还被当作服务器,甚至当作网络防火墙,这是Linux的一大亮点。
Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
Ⅶ linux开发工程师开发什么的
一:C语言:嵌入式Linux开发工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域重要也是主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
二:Linux基础:Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
三:Linux系统编程:重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
四:Linux网络编程:计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
五:数据结构与算法:数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
六:C++ 、QT:C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
七:Cortex A8 、Linux 平台开发:通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
八:驱动开发:驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。
以上内容就是linux开发工程师主要会干什么,看上去挺多的吧。事实上linux的学习是一步一步循序渐进的,慢慢的就会发现,一切都顺理成章。还在犹豫要不要学习?赶紧开始吧!
更多Linux知识可参考《Linux就该这么学》。
Ⅷ 基于Linux开发的操作系统有哪些
linux为内核的系统有16款,下面是详细情况。
1、Kubuntu
Kubuntu 是一个Ubuntu 操作系统,它使用的是KDE plasma Desktop 而非Unity 图形环境。
2、Ubuntu
Ubuntu是一款快速、安全、简单易用的Linux操作系统,它在全世界有成千上万的拥趸。
3、openSUSE
openSUSE 是一款免费、稳定、易用、基于Linux的多功能操作系统。 它适用于PC、笔记本以及服务器。有
4、Mandriva Linux OS
Mandriva Linux是来自Mandriva的终极版Linux操作系统。它是三种技术融合的结晶:Mandriva,Conectiva和Lycoris。
5、Debian operating system
Debian Linux也是一款免费的操作系统。Debian使用Linux内核(一个操作系统的核心),但大部分基本操作系统工具来自GNU项目,因此得名GNU / Linux。
6、Elive Linux operating system
Elive是一个完整的基于Linux的操作系统,是替换那些昂贵的操作系统的最佳选择。Elive建立在Debian GNU / Linux基础之上,并允许用户自定义以满足个人需要。界面清爽美观,硬件需求较小。只需一个接口就能使旧电脑瞬间高能。
7、Fedora Linux operating system
Fedora是一个基于linux的操作系统,展示最新的免费开源软件。Fedora免费供任何人使用,修改和发行。
8、Sabayon Linux
Sabayon Linux是一款先进的、可伸缩的和社区驱动的Linux操作系统。它努力为用户提供最好、最完整的计算体验。
9、FreeBSD
FreeBSD是一款面向现代服务器、台式机和嵌入式计算机平台的操作系统。FreeBSD提供先进的网络、骄人的安全特性和世界一流的性能。
10、PC-BSD Linux Operating system
PC-BSD是一款易用性很强的Linux操作系统。如同其他任何现代系统,你可以听你喜欢的音乐,看你喜欢的电影,办公,处理文档,安装你喜欢的各种应用程序,一切只需一键就能安装好。
11、DesktopBSD
DesktopBSD致力于为台式机用户提供一个稳定且强大的Linux操作系统。DesktopBSD结合了FreeBSD的稳定性和KDE的实用性和功能。
12、Syllable Desktop
Syllable Desktop是一个完整的操作系统。它易于使用,功能强大,占用空间小,响应迅速。
13、GeeXboX
GeeXboX是一款免费开源的,用作媒体中心(Media-Center)的Linux distribution,用于嵌入式设备和台式电脑。
14、麒麟系统
银河麒麟(Kylin)是由国防科技大学、中软公司、联想公司、浪潮集团和民族恒星公司合作研制的开源服务器操作系统。此操作系统是863计划重大攻关科研项目,目标是打破国外操作系统的垄断,研发一套中国自主知识产权的服务器操作系统。
15、Red Hat
Red Hat公司发布的面向企业用户的Linux操作系统。
16、Centos
Centos是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。
Ⅸ linux上做什么开发
可以做很多开发啊。有PC软件开发、嵌入式产品开发、网络运维、服务器管理等方向。
可以做系统功能、内核驱动方面的开发,GUI界面上的开发,自动化测试方面的脚本开发,都可以啊,应用非常广泛。开发语言可以是C语言、C++语言,还可以是Shell脚本、Expect脚本、Perl脚本、Python脚本等。所以说,你这个问题涉及面非常广。
现在很多通信、医疗、军工、家用电器设备都使用嵌入式Linux系统,即可裁剪的、运行于移动设备端的Linux系统,Android、IOS归根结底,都可算作是Linux平台的东西。当然,也可以基于自由的Linux平台来自主开发,有很多第三方库可以拿来直接用。
开源平台,无与伦比的自由;开源社区,无穷无尽的支持。