Red de conocimiento informático - Material del sitio web - Cómo aprender a compartir experiencias de Linux y el origen y desarrollo de Linux

Cómo aprender a compartir experiencias de Linux y el origen y desarrollo de Linux

Debes crear un entorno para aprender Linux: instala Linux o Unix en tu computadora

Cómo elegir la versión: redhat se usa en Norteamérica, SuSE se usa en Europa Y hay más mandrágoras de escritorio. Debian es el desarrollador de Linux técnicamente más avanzado y el más utilizado, seguido de redhat. A juzgar por la participación de mercado global de varios campos de aplicaciones de Linux, redhat es sin duda el más grande. distribuciones conocidas, que no se enumerarán aquí.

Para aquellos que son nuevos en Linux, recomiendo usar redhat por las siguientes razones:

1) Muchos libros ahora usan redhat como ejemplo, para ser consistente con los libros.

2) Todos los que nos rodean usan Redhat, por lo que la comunicación es más conveniente

3) Redhat tiene una amplia gama de aplicaciones y es típico y representativo

4) Es fácil de usar. Para usarlo e instalarlo, no necesitamos perder tiempo en “instalar el sistema”, sino que debemos concentrarnos en aprender las cosas más útiles.

Tenga en cuenta ahora que creo que RH es muy rígido. AS, ES, etc. pueden ser buenos para servidores, mandrake, debian y suse son todos buenos porque el autor ahora usa Mandrake. ella es hermosa:)

Si no planeas aprender Linux en profundidad, pero tienes una necesidad como adaptarte a la migración de la plataforma de oficina del Gobierno Municipal de Beijing a Linux, entonces Linux chino como ChinaSoft y Hongqi son buenas opciones

Recomiendo encarecidamente: instale Linux en su disco duro usted mismo. Debe aprender las habilidades para instalar el sistema Linux de forma independiente. Para la versión actual, en realidad es tan simple como instalar WinXP. p>

De ahora en adelante, no piense en el problema en términos de la forma en que funciona Windows. Debería intentar aprovechar el temperamento "genial de Unix" de Linux.

3. Avanzado

Domine al menos 50 comandos comunes

Comprenda la canalización de shell "|", la redirección de flujo de archivos">" y agregue" >>"Espera

Estar familiarizado con el funcionamiento de entornos de escritorio X-windows como Gnome/KDE

Dominar los métodos de instalación comunes de paquetes de software como .tgz.rpm.biz

Aprenda a agregar periféricos e instalar controladores de dispositivos (como un módem)

Familiarícese con el gestor de arranque Grub/Lilo y las operaciones de reparación simples

Familiarícese con los nombres y las propiedades públicas de los directorios inherentes del sistema

Aprenda a usar el comando mount para acceder a otros sistemas de archivos

Comprenda editores, compiladores y depuradores comunes como vi, gcc y gdb

Aprenda redes simples en el entorno Linux

Sugerencia: compre un libro de texto de Linux que no necesite ser demasiado grueso, que generalmente pueda cumplir con los requisitos (cada vez hay más libros y también incluyen muchas fotos, pero no tenía tantos libros en ese momento)

4. Aplicaciones avanzadas

Aclarar algunos conceptos: las operaciones ordinarias de Linux no se pueden comparar con el sistema real. gestión, este último requiere muchos conocimientos

1. Inglés

Incluso si no aprendes Linux, te recomiendo encarecidamente que aprendas inglés [inglés de EE. UU.]. Porque, en esencia, el lenguaje informático es inglés y caracteres, y el llamado multilenguaje es solo un paquete externo. Debe poder leer una gran cantidad de documentos técnicos en inglés sin ningún obstáculo, buscar hábilmente sitios web en inglés y páginas web encontradas por motores de búsqueda y, preferiblemente, tener la capacidad de comunicarse directamente en inglés. Si elimina este obstáculo, su aprendizaje. y la velocidad de comprensión será mucho más rápida, tendrás la oportunidad de ampliar la brecha con los demás.

2.shell[sed/awk]

Shell es un intérprete de comandos y un canal de comunicación entre el kernel y la interfaz de usuario. El pequeño script escrito por Shell es algo similar a . bat bajo win pero Shell es mucho más poderoso que .bat. Shell no solo interpreta comandos, sino que también es un lenguaje de programación. A veces, cientos de líneas de C se pueden reemplazar con docenas de líneas de Shell para completar el trabajo. de shell se basa en el sistema existente además de muchas aplicaciones

Esta también es una idea importante en CS. Además, el shell puede realizar la automatización del trabajo. Este concepto también es importante y se usa comúnmente para procesar texto.

3.Perl/PHP

Hermoso script, la primera opción para CGI, mejor que ASP y tiene una amplia gama de aplicaciones

4.C\ C++

C y C++ son los lenguajes centrales de Linux/Unix, y todos los códigos del sistema están escritos en C

5.ASM

La parte inferior capa del sistema y kernel, hardware, controladores de dispositivos, necesarios para el desarrollo integrado. // Si tomas la ruta principal, c\c++, asm es la más importante

6. Java, Python, Tcl, XML

5. p> Además de estar familiarizado con Linux, también necesitas dominar al menos un Unix. Recomiendo primero Solaris, seguido de FreeBSD. Por ejemplo, los sistemas a nivel de operador suelen ser Solaris+Oracle/DB2. Aprenda apache, ssh, sendmail/Qmail, proftp/vsftp, Samba, Squid, MySQL/PostgreSQL/Oracle, Bind y otros. Familiarizado con la familia de protocolos TCP/IP en términos de arquitectura de servidor y aplicaciones de comercio electrónico, aprendiendo la implementación de apache+php+proftp+mysql+quota y varias soluciones de aplicaciones de nivel empresarial, como redes de área local a gran escala y. Clústeres distribuidos Familiarizado con la administración multiusuario y la administración de bases de datos, sistemas de archivos, administración de almacenamiento lógico, análisis de registros, parches del sistema de copia de seguridad y reparación de datos de desastres, actualización del kernel y arquitectura de firewall basada en esto para garantizar la seguridad del sistema.

Creo que si domina el equipo de enrutamiento/conmutación sobre esta base, será un buen administrador del sistema.

Para diversas soluciones basadas en Linux, puede consultar libros y literatura relevantes. Si es necesario, utilice Google o los motores de búsqueda de los principales sitios de Linux para encontrar los documentos más recientes y evitar errores y lagunas. Hay varias enciclopedias técnicas y expertos técnicos que creo que son buenos libros a este respecto

6. Aprenda Linux en profundidad

Mi comprensión personal de los conceptos básicos necesarios para leer el kernel de Linux: antes de eso, espero aprender primero sobre la capa de aplicación, para que sea más fácil de entender

1.C

Si ha estudiado el libro de texto universitario de Tan Haoqiang (de esos que parecen no poder hacer nada más que compilar algunos modelos matemáticos), se recomienda leer la Biblia "La programación en C". Language" Segunda edición (si desea aprender el desbordamiento del área de almacenamiento en búfer, esta habilidad de C puede no ser suficiente, también hay , , , de todos modos, hay no hay nada de malo en leer demasiados libros clásicos)

2.asm (sintaxis de AT&T, modo protegido)

El modo protegido es más complicado Básicamente, todos los libros sobre el kernel presentarán los conceptos básicos. Sintaxis Intel 80x86.

Si está interesado, puede consultar el sitio web oficial de Intel

3. Estructura de datos (matemáticas discretas)

No iré. sobre la importancia de los cursos básicos para estudiantes de informática

p>

4 Principios del sistema operativo

Lea esto y luego lea Linux

5. (circuitos digitales)

La capa inferior se ocupa directamente del hardware, por lo que esto también es necesario

6. Entender Linux/Unix

Creo que debes hacerlo. al menos poder operarlo y comprender la API de Unix

7. Principios de ingeniería/compilación de software

Puede encontrar muchos libros clásicos en esta área en www.china-pub.com. Creo que libros como APUE no son adecuados para principiantes, así que será mejor que lea UPE primero

La historia de Unix a Linux

¿Por qué la gente suele decir que Linux es un sistema muy estable? ¿Sistema operativo? Esto se debe a que Linux tiene un antepasado, ¡y ese es la familia Unix! ¡Con el apoyo de este mayor, Linux, el hermano pequeño, se ha convertido rápidamente en un sistema operativo estable y excelente! Entonces, ¡hablemos de la historia de Unix a Linux!

Veinte años antes de que apareciera Linux (alrededor de la década de 1970), ¡había un sistema operativo bastante estable y maduro! ¡Ese es el hermano mayor de Linux "Unix"! ¿Por qué dices eso? ! ¿Cuál es la relación entre estos dos chicos? ¡Hablemos con él aquí! Como todos sabemos, el núcleo de Linux fue desarrollado por Linus Torvalds en 1991 y se publicó en Internet para que todos lo descargaran. Más tarde, todos sintieron que esta pequeña cosa (el kernel de Linux) era bastante pequeña y exquisita, por lo que gradualmente se convirtió en una gran cantidad. ¡Pocos amigos han invertido en el campo de investigación de esta cosita! Pero ¿por qué esta cosita es tan grandiosa? ! Pero, ¿por qué todo el mundo puede descargar esto gratis? ! ¡Eh! Espera a que el hermano Bird engañe lentamente a xx... ¡Oh, no! ¡Escúchame despacio!

Un sueño inacabado: el sistema "Multics" de Bell, MIT y GE

Las primeras computadoras no eran como las computadoras personales actuales y no eran accesibles para la gente común, a menos que lo sea. ¡Para fines militares o de alta tecnología, es posible entrar en contacto con este tipo de computadora! Como se mencionó anteriormente, el hardware de la computadora también requiere la cooperación de un sistema operativo para lograr el mejor rendimiento de la computadora. Sin embargo, en aquellos días, las computadoras se consideraban "bienes de lujo", o más bien "artículos de valor", por lo que podría ser posible. Úselos una vez. La escuela solo tenía una computadora central. Por supuesto, las llamadas computadoras centrales de esa época todavía no podían proporcionar una potencia informática moderada.

Sin embargo, dado que solo hay un mainframe, pero hay muchos profesores y estudiantes que quieren utilizarlo, ¿qué debemos hacer? Para resolver este problema, a principios de la década de 1960, el Instituto de Tecnología de Massachusetts (MIT) desarrolló el llamado "Sistema de tiempo compartido compatible (CTSS)". En sentido literal, permitió principalmente que los mainframes pudieran proporcionar múltiples. terminales para acceder al host en línea y utilizar los recursos del host (Por cierto, el terminal (Terminal) en ese momento no tenía software ni recursos disponibles. Para poder utilizar estos terminales, debe iniciar sesión en el host. en línea ¡Después de eso, puede usar los recursos del host para trabajar!) En ese momento, alrededor de 30 usuarios podían usar el host en línea. Para hacer que este sistema de tiempo compartido sea más potente, alrededor de 1965, el Laboratorio de Investigación Bell (Bell), el Instituto de Tecnología de Massachusetts (MIT) y GE Electric Company (GE) comenzaron a desarrollar conjuntamente un sistema llamado Multics. Un proyecto a gran escala. , el objetivo es permitir que el mainframe conecte a más de 300 usuarios. Sin embargo, después de cuatro años de lucha, el proyecto aún fue declarado muerto... ¡Oh! ¡Es un fracaso! (Nota: Multics significa complejo y numeroso).

La aparición de un pequeño sistema de archivos: el pequeño sistema de servidor de archivos de Ken Thompson en 1969

El proyecto del complejo sistema Multics después del fracaso Por supuesto, Bell Labs se retiró del proyecto. Justo después de que el proyecto se disolviera, Ken Thompson, miembro de Bell Labs que había participado en Muitics, necesitaba un pequeño sistema operativo para acceder a archivos debido a sus propias necesidades laborales, por lo que en 1969 lo fundó como DEC (Digital Equipment Corporation). ) utilizando el ordenador PDP-7 como referencia de hardware, diseñó un pequeño sistema de archivos adecuado para su entorno de trabajo, que también contiene algunas pequeñas herramientas que él mismo desarrolló. ¡Ese sistema fue la fuente del primer Unix! Cuando Ken diseñó originalmente este sistema de archivos, diseñó principalmente un sistema operativo simple para su propia comodidad de acceso, por lo que simplificó enormemente el sistema Multics original. Sin embargo, ¡el término Unix aún no existía en ese momento!

El nacimiento oficial de Unix: en 1973, Ritchie y otros escribieron el primer núcleo oficial de Unix en lenguaje C

Debido a que el sistema operativo escrito por Thompson era muy fácil de usar, en Tuvo una amplia circulación en los Laboratorios Bell y fue revisado varias veces. En 1973, para optimizar el rendimiento de ejecución de este sistema, Dennis Ritchie y otros del Bell Research Laboratory reescribieron significativamente el núcleo del sistema original de 1969 utilizando el lenguaje C con un mejor rendimiento de compilación y se aseguraron de que el nombre del sistema operativo fuera Unix. , ¡ja ja! ¡Ese fue el primer sistema operativo Unix! Sin embargo, dado que este sistema operativo fue desarrollado por este grupo de ingenieros, y la mayoría de los usuarios son ingenieros en este campo, la interfaz del sistema Unix posterior fue más difícil de aceptar por los usuarios generales@_@ (Nota: relativa en Multics , Unix tiene un solo significado)

Rama importante de Unix: el nacimiento de BSD en 1977

En el desarrollo inicial de Unix, hubo una cosa muy importante, es decir, el nacimiento. de BSD! Dado que el lenguaje C es un lenguaje de alto nivel, se puede aplicar a diferentes arquitecturas de hardware, ¡y el propio Unix está escrito en lenguaje C! Después del lanzamiento de Unix, los profesores de la Universidad de Berkeley estaban muy interesados ​​en este sistema operativo. Después de obtener el código fuente de Unix y modificarlo varias veces, finalmente lanzaron la primera generación de Berkeley Software Distribution en 1977 (BSD).

Este BSD es una rama de Unix y su desarrollo tiene un impacto considerable en Unix. Por ejemplo, Sun utilizó más tarde el núcleo del desarrollo de BSD para desarrollar su propia versión comercial de Unix.