¿Qué es esto?
Puedo ejecutar FreeBSD en mis equipos. Muchos de mis amigos ejecutar Linux , o por lo menos una de las distribuciones de la misma. Naturalmente, entonces, estamos de acuerdo en que un sistema operativo estilo Unix es la mejor opción, pero no estamos de acuerdo en que para su uso.
Ha sido mi impresión de que la comunid BSD {y,} s, en general, comprender mucho mejor que la comunid Linux {y,} s Linux entender BSD. Tengo algunas teorías sobre por qué es, pero eso no es realmente relevante. Creo que un montón de gente de Linux se desconectan BSD, porque no entiendo muy bien cómo y por qué es en su conjunto. Por lo tanto, esta diatriba, como una persona BSD, quiero tratar de explicar cómo BSD funciona de una manera que las personas que Linux puede absorber.
Si bien no hay gran similitud entre los sistemas operativos en la mayoría de los casos, también hay muchas diferencias. A medida que la sonda más en las diferencias, se encuentra que surgen de profundos desacuerdos. Algunos desacuerdos sobre la metodología de desarrollo, algunos de despliegue y el uso más, algunos de lo que es importante, algunos de quién es importante, y algunos sobre los que los sabores de helado es superior. Sólo comparando las diferencias superficiales no le dice nada, es la diferencia más profunda que explicar y justificar por qué cada grupo hace las cosas de la manera que lo hacen.
Algunas ideas preliminares
Hay un montón de diferencia filosófica entre el mundo de Linux y el mundo BSD. Y hay un montón de expresiones al respecto por ahí. Uno particularmente me gusta más o menos así:
BSD es lo que obtienes cuando un grupo de hackers de UNIX se sientan a tratar de puerto de un sistema Unix para la PC. Linux es lo que obtienes cuando un grupo de hackers PC sentarse y tratar de escribir un sistema de Unix para PC.
Ahora, me gusta que chiste no, porque es una especie de verdad absoluta, revelada, sino porque le da una sensación muy buena para algunas de las diferencias. Los BSD, en general, son mucho más parecido a Unix tradicional de lo que es Linux. Mucho de eso es porque son de línea directa descendientes de los BSD de Berkeley, que era un descendiente directo de línea de la original de AT & T Unix. Unix-la marca-es una marca registrada de The Open Group, y el código de Unix, es propiedad de SCO, por lo que uno realmente no puede decir que los BSD son realmente Unix (que es el tipo de declaración que provocó la demanda de USL / UCB espectáculo, de hecho). Sin embargo, en muchos sentidos, los BSD son derivados directos de Unix tradicionales.
Que muestra a través de muchas formas. Se manifiesta en el diseño del sistema base y el embalaje de los addons. Se manifiesta en la partición de la memoria de masa. Se manifiesta en muchos detalles de los comandos. Y eso se nota en las actitudes y los reflejos y los prejuicios de los desarrolladores, que se reflejan en el código y en los usuarios.
BSD está diseñado. Linux crece. Tal vez esa es la forma sucinta sólo para describirlo, y posiblemente el más correcto.
Conoce a los jugadores
Voy a dar aquí una breve introducción y discusión de los sistemas voy a estar hablando. Tenga en cuenta que las historias presentadas no son exhaustivas o de autoridad, y no se ha tratado de hacer de esa manera. Acuerdo.
Unix
Unix no es (precisamente) un sistema operativo.
Bueno, lo es, y no lo es.
En el uso específico, Unix es un sistema operativo desarrollado originalmente a finales de los años 60 en los Laboratorios Bell por Ken Thompson y Dennis Ritchie. Durante los años transcurridos desde entonces ha sido desarrollado y distribuido como un sistema operativo comercial, y un sistema de investigación que operan, por Bell Labs y gobierno de Estados Unidos y USDL y Attis y la USL y Novell y SCO, y nadie más que pudiera llegar a un acrónimo.
Probablemente no es exagerar demasiado decir que Unix es el sistema operativo más influyente en la informática moderna. Todos los dispositivos de cómputo de propósito general que encontrarás, y una gran cantidad de dispositivos de cómputo de propósito específico, va a utilizar ideas y conceptos y el código de frecuencia a partir de algo en el árbol de la familia Unix.
Cuando usamos 'Unix' de la palabra, entonces, mucho más a menudo significa que la forma general, que el sistema operativo específico que lleva el nombre de Unix ™. La forma general significa "cualquier sistema operativo que, en el diseño y la ejecución y la interfaz y el sabor general, es sustancialmente similar al del sistema Unix." Esto significa que todos los BSD, Linuxen, SunOS, Tru64, SCO, IRIX, AIX, HP / UX, y un elenco de cientos o miles de personas.
No estoy interesado en entrar en discusiones semánticas sobre cuántos ángeles pueden bailar en una cabeza de pelo de división. Baste que cuando usan frases como "los sistemas Unix", quiero decir exactamente lo que pienso cuando uso la frase. Pedantería Ciudad ---> de esa manera.[/color]
Linux
Linux también significa varias cosas. Se trata de un núcleo, escrito originalmente por Linus Torvalds, cuando era estudiante en Finlandia. Desde entonces ha sido una paliza, puñetazos en todo, ajustado, empujó, empujó, manejadas, digerido, escupir, pisoteó, masticado, echados fuera, trajo, y otro tipo de manipulación (no necesariamente en ese orden, por supuesto) por más los demás de lo que podía contar.
Linux es también el término para una familia de sistemas operativos. Si bien no son fascinantes discusiones metafísicas que tienen lugar en docenas de lugares en todo el mundo en este mismo segundo (te lo garantizo) acerca de cómo "Linux no es realmente un sistema operativo, es sólo un núcleo", o "Debería ser llamado" GNU / Linux ", o temas similares, yo también voy a evitar cuidadosamente que la semántica pozo negro. Cuando digo "Linux", me refiero a Red Hat . Me refiero a Slackware . Me refiero a Mandrake . Me refiero a Debian . Me refiero a SuSe . Me refiero a Gentoo . Me refiero a cada una de las dos distribuciones kadzillion por ahí, en torno a un núcleo de Linux con userlands sustancialmente similares, la mayoría basadas en las herramientas GNU, que están flotando alrededor del éter.
BSD
BSD es el acrónimo de "Berkeley Software Distribution". Originalmente, se trataba de un conjunto de parches y utilidades extra add-on para el sistema oficial de Bell Unix que fueron desarrollados por el CSRG de la Universidad de California, Berkeley. Con el tiempo, se desarrolló a cambios y / o reemplazar cada vez más del sistema, hasta que en algún punto indefinido se convirtió en su propio sistema operativo, básicamente, que sólo pasó a compartir trozos de código con el sistema Unix de Bell.
Por supuesto, todavía se requiere que usted tiene una licencia de Bell para utilizar el sistema, ya que muchos de ellos aún estaba código de Bell. Todo el código escrito por Berkeley, sin embargo, fue puesto en libertad bajo lo que se conoce como la licencia BSD, que básicamente se traduce en "Haz lo que te de la gana con el código, sólo nos dan crédito para escribirlo". Y una buena parte del código BSD terminó trabajando su camino de regreso a la "oficial" del sistema Unix también, en el Sistema III y V. del sistema y, una gran cantidad de ambas cepas se abrieron camino en las horquillas de varios comerciales de Unix.
Después de que el CSRG (la mayoría) disuelto y se detuvo el desarrollo del sistema BSD, varios grupos se fueron de diferentes maneras con el código. Uno de ellos fue el proyecto 386BSD, que tuvo el código de BSD y la hizo funcionar en la plataforma Intel i386. A medida que el proyecto 386BSD herida hacia abajo, dos grandes grupos tomaron el código de 386BSD para seguir adelante con él, uno fue el proyecto FreeBSD, el otro era el proyecto NetBSD. Más adelante en el camino, algunos desacuerdos internos dentro del proyecto NetBSD hicieron que el proyecto OpenBSD que se separó de ella.
Cuando digo "BSD", entonces, me refiero a una serie de cosas. Me refiero al sabor general de BSD y el enfoque de sistemas. En general, me refiero a lo anterior como lo ejemplifica la 3 actuales sistemas BSD libre disposición:
FreeBSD inicialmente dirigido conseguir el mejor rendimiento posible en la plataforma 386. Últimamente, se ha expandido a un número de otras plataformas como Alpha y SPARC, así como a los herederos de i386, Itanium de Intel y Opteron de AMD. Su principal objetivo es ser lo más robusto y eficiente como sea posible en sus diversas plataformas, tanto para funciones de servidor y escritorio.
NetBSD tiene como objetivo que se ejecutan en tantas plataformas como sea posible. Su objetivo es ser el sistema operativo más portable en el planeta, y parece que hacen un trabajo bastante razonable, en la misma.
OpenBSD se centra principalmente (algunos dirían «exclusivamente») en materia de seguridad y otros temas relacionados. La estrecha integración de la seguridad y la auditabilidad y la criptografía y temas relacionados son su principal objetivo.
Todos esos objetivos, por supuesto, son fungibles. Cada BSD se preocupa y trabaja en la seguridad. Cada BSD se preocupa y trabaja en el rendimiento. Cada BSD se preocupa y trabaja en la portabilidad. Trozos de código masivo son compartidos entre el grupo. Muchos desarrolladores trabajan en más de un sistema.
Los lectores astutos notarán que no menciono Mac OS X o de su capa subyacente Darwin como BSD. Mientras ellos están basados en un fundamento en su mayoría BSD, las capas superiores de OS X de Apple son puros. Con OS X, como usuario, por lo general lo utilizan como MacOS, no como BSD. Así, mientras que algunos de estos podrían ser aplicables académicamente para OS X, no es de ningún valor práctico en la comprensión de la misma. Darwin está más cerca de una sensación de BSD estándar, pero la mayor parte de su base de usuarios es gente que vino de BSD, así que es un poco fuera del alcance de este ensayo también. Mucha de la información general, sin embargo, es probable que transferir fácilmente.
Cuando se habla de detalles en este ensayo, voy a ser en su mayoría se refiere a FreeBSD, ya que es el que yo personalmente correr y yo, con mucho, el más familiar. En puntos muy específicos, no habrá diferencias significativas. Cuanto más general es el punto, lo más probable es que ser el mismo en todo el grupo. Filosóficamente, todos los BSD son muy similares, en contraste con la metodología de Linux. Y de todos modos, la filosofía es lo que este ensayo se trata de, en primer lugar.
El Sistema de Base
El concepto de "sistema base" es algo que, creo, hace que la mayoría de los problemas para las personas que utilizan la metodología de Linux. Cual es perfectamente comprensible, porque la idea simplemente ni siquiera existen en el mundo Linux.
Linux, desde el principio, era sólo un kernel. Sin entrar en el eterno debate de qué es un "sistema operativo", precisamente consiste en, es fácil afirmar que el núcleo por sí mismo no es muy útil. Tenéis necesidad de todas las utilidades de espacio de usuario para que funcione. Linux siempre ha sido un conglomerado, un núcleo a partir de aquí, un ls a partir de ahí, un ps desde ese otro lugar, vim, perl, gzip, el alquitrán, y un montón de otros.
Linux nunca ha tenido ningún tipo de separación entre lo que es el "sistema base" y lo que es "utilidades addon". Todo el sistema está "utilidades addon". MySQL no es diferente de ls de KDE del whois de CC de GnuCash desde ... Cada bit del sistema es sólo uno u otro paquete adicional.
Por el contrario, BSD siempre ha tenido un modelo de desarrollo centralizado. Siempre ha habido una entidad que está "a cargo" del sistema. BSD no utiliza GNU ls o libc de GNU, que utiliza ls BSD y BSD libc, que son descendientes directos de la LS y libc que estaban en las versiones BSD CSRG distribuidos. Nunca han sido desarrollados de forma independiente o envasados. No se puede ir "descargar libc BSD" en algún lugar, porque en el mundo BSD, libc por sí mismo no tiene sentido. ls por sí mismo no tiene sentido. El kernel por sí mismo no tiene sentido. El sistema en su conjunto es de una sola pieza, no un montón de pequeñas piezas.
Ahora, X no es parte del sistema base de FreeBSD. Se trata de un paquete de complemento. Puesto que X no es parte del sistema de base, aplicaciones como xterm X y KDE y Gnome, y ya sea Mozilla y gaim y xmms y como obviamente no puede ser parte del sistema base. Son paquetes adicionales, que son tratados y el pensamiento de otra manera. La principal diferencia es que están desarrollados.
NetBSD y OpenBSD tiene una implementación de X en la base, debido a la forma en que se integran con su controlador de consola. Ambos utilizan muy modificadas, versiones muy personalizadas, así que no es posible mantenerlo como un paquete separado.
El sistema de base de todo es desarrollado en conjunto. Sin duda, hay partes del sistema de base como sendmail y BIND y tcpdump y ssh y tal, que se encuentran en los paquetes de hecho individual que se desarrollan en otros lugares. Incluso hay algunos paquetes de GNU como groff y gcc y gzip y tal, que será inmediatamente reconocible para cualquier usuario de Linux. Pero se trata de un tratamiento especial, en que las versiones se importan en el árbol, luego se moldea para adaptarse al resto del sistema. De hecho, muchos de ellos solía ser de sólo BSD, BIND y Sendmail fueron desarrollados originalmente en Berkeley, como parte de BSD, y sólo más tarde se convirtió disponible por separado. Mi sistema FreeBSD afirma estar ejecutando la versión de gcc 3.2.2 en este momento. Técnicamente, no es realmente gcc 3.2.2, es un compilador de FreeBSD basado en gcc 3.2.2. La versión de tcpdump que tengo aquí no es técnicamente 3.7.2, es un tcpdump FreeBSD basado en tcpdump 3.7.2.
En la mayoría de los casos, por supuesto, la versión de FreeBSD es prácticamente indistinguible de la versión del proveedor. No es por lo general algunos cambios en la configuración de la compilación (Makefiles y tal) para que su construcción sin problemas con el resto del sistema, y de vez en cuando algunos parches necesarios para que se compile y ejecute bien. Algunos cambios son más amplios, y algunos son enormes. Sin embargo, todos son mantenidos juntos, y obligado a jugar muy bien juntos. No hay una garantía básica de que las piezas en un sistema de base de BSD encaja todo, por su diseño.
La razón principal de un paquete desde el exterior se mantiene importados y seguimiento en la base del sistema es que es, de alguna manera, bastante básica para el funcionamiento del sistema que es más fácil de lo que hay por defecto. FreeBSD utiliza actualmente el servidor ssh OpenSSH y el cliente, que se integran en el sistema base, ya que, en esta época, un método de acceso remoto seguro es lo suficientemente básico para cualquier sistema que es una necesidad práctica. gcc y binutils son parte del sistema base, porque ... así, son necesarios para construir el sistema de base. X y Gnome y PostgreSQL y Apache, y no son parte del sistema base, y probablemente nunca lo será, porque no son necesarios para que el sistema y desplegados, no se puede utilizar en muchos sistemas, no es necesario ese tipo de integración de cerca ... por muchas razones.
Es importante destacar que este "sistema base" idea, ya que es, creo, uno de los indicios más visibles de la diferencia en las metodologías de desarrollo entre Linux y BSD. Un distribuidor de Linux puede juntar las piezas y comprobar que se ajustan antes de soltarla. Pueden incluso tener algún tipo de personalización en algunos de los paquetes. Pero es bastante diferente del tipo intenso de integración realizado por BSD. En particular, en que muchos de los componentes del sistema de base no vienen de "otro lugar" en el primer lugar, que han vivido toda su vida como parte del sistema.
Algunas distribuciones de Linux (Debian y Gentoo, por lo que entiendo, son particularmente prominentes miembros de este grupo) son mucho más similares a esta base / puertos división que otros. Ellos mantienen una especie de línea divisoria entre lo que es necesario para que el sistema en funcionamiento, y todos los otros paquetes que desee instalar en el sistema. Lo que lo distingue de la base del sistema BSD es que la mayoría de los paquetes todavía se mantienen en otros lugares, y sólo "recogidos" en el Linux dist. No hay "Gentoo tftp", por ejemplo, es un paquete de otro lugar. Mientras que muchos paquetes de BSD son de otro lugar, nunca la mayor parte del "sistema base", provino de algún mantenedor otros, sino que siempre ha sido BSD.
La base del sistema es a veces etiquetados como "minimalista" o "clara y directa" o cosas así, con la implicación de que se trata de mantener la forma en que es un deseo de tener lo más pequeño o estrecho como sea posible. Pero que en realidad no es el caso, seguro, queremos que sea todas esas cosas, pero se hace la forma en que se debe a que es realmente la intención de ser lo que se llama, la base de un sistema. Nunca en mi vida he implementado un sistema BSD correr sólo lo que está en la base, y probablemente nunca lo hará. Yo no conozco a nadie que lo ha hecho. La base sólo tiene que proporcionar las herramientas para que el sistema en funcionamiento, y le permiten actualizar e instalar otros paquetes. Luego de instalar lo que usted necesita, para la función específica de este sistema está destinado.
Me han dicho que lo anterior es más cierto que en FreeBSD Net o abierto, los cuales en muchos aspectos, tienen un criterio mucho más amplio para determinar qué incluir en el sistema base. Como siempre, usted debe consultar los manuales de los sistemas individuales para determinar exactamente dónde va.
El sistema de puertos
Entonces, ahí está la segunda categoría, aquellos programas que son paquetes adicionales. En el mundo BSD, esto se llama el "sistema portuario". Ese nombre es elegido por una razón específica.
Tradicionalmente, cuando se quiere ejecutar un paquete en su sistema, lo primero que tenía que hacer era compilarlo. Y, a menudo antes de que pudiera compilar, usted tendría que jugar con él. Su sistema se requieren diferentes archivos de cabecera. A veces, las constantes de manifiesto sería diferente. A veces, incluso tendríamos que reescribir partes de ella a partir de cero, debido a la suposición básica de que no poseía en su sistema.
O, en otras palabras, usted tendría que "puerto" para su sistema operativo, y / o de su sistema específico. La intención básica del sistema de puertos es hacer todo lo que "portar" cosas para ti. Que también automatiza la construcción e instalación, y ofrece servicios de embalaje (para cosas como 'desinstalar') no está tan bien reflejada en el nombre.
Sin embargo, como con muchas cosas, que creció más allá de su nombre en la bestia que es hoy. La actual colección de ports de FreeBSD cuenta con cerca de 10.000 paquetes en el mismo (este número, por supuesto, ser obsoletos rápidamente, pero esa es la naturaleza del desarrollo). La característica más obvia de los puertos es que construye cosas de la fuente de todo el tiempo, en lugar de instalar los binarios precompilados. Esto, al parecer, es otra de las diferencias evidentes que la gente viaje cuando se intenta mirar a BSD desde una perspectiva de Linux. Que se construye a partir de la fuente es sólo un efecto secundario, no es el propósito principal o la diferencia. Los paquetes binarios están disponibles, de hecho, los paquetes binarios se construyen a partir del árbol de ports!
Ahora, es cierto que la mayoría de los usuarios de Linux de instalar paquetes binarios, y la mayoría de los usuarios de BSD instalar mediante la construcción de la fuente. En parte, eso es resultado de las herramientas, el sistema de puertos está diseñado alrededor del concepto de construcción de la fuente, con la capacidad de fabricar e instalar los paquetes binarios siendo una especie de idea de último momento, mientras embalaje Linux como RPM y dpkg y como están diseñados alrededor de la concepto de la instalación de un paquete binario, con la construcción de la fuente como una ocurrencia tardía. Algo de esto es histórico, el embalaje binaria históricamente no es un tema predominante en los sistemas Unix, como he mencionado antes. Por lo demás, el embalaje en sí es algo más reciente. Tradicionalmente, usted tratar de desinstalar manualmente y tal.
Gentoo es una distribución Linux ganando en importancia en estos días. Uno de sus puntos de venta es su gran porte del sistema, que a menudo se considera muy similar a los puertos de BSD. Tal vez lo más visible, en el que se compila desde las fuentes. Que evite una gran parte del problema de los paquetes binarios. Nunca he utilizado yo mismo, pero las impresiones que he recibido de la información que he visto en ella, y la gente que conozco que lo han usado, es que ha tomado algunas buenas ideas de todos, y aglomeración juntos. Será muy interesante ver cómo progresa y madura con los años próximos. Todavía es mucho más que Linux BSD, pero bien podría ser el más cercano al estilo BSD de las principales distribuciones de Linux.
Ahora, hay ventajas para binarios precompilados, sobre todo el tiempo (como en mucho menos), y por lo general va a tomar mucho menos espacio para instalar un paquete pre-compilado, de lo que para compilar el paquete. También hay ventajas para la construcción de la fuente, como evitar todo tipo de fealdad de la biblioteca de versiones (mi queja personal con paquetes binarios). Puede instalar paquetes binarios en Linux o BSD, se puede construir desde el código fuente en Linux o BSD. Sin embargo, los usuarios parecen estar sesgados de manera diferente, porque los sistemas tienen un sesgo diferente, ya que los usuarios tienen un sesgo diferente ... todo encaja.
Creo que lo importante aquí es darse cuenta de que la diferencia entre los puertos y las RPM no es sólo que se compilan los puertos y RPM es sólo instalar. Los puertos están diseñados para cubrir toda la gama de partes y piezas de la instalación de material, la codificación y el seguimiento y la instalación de las dependencias, empaquetar, instalar y desinstalar, los cambios locales necesarios para construir en su sistema, ajustes de configuración en tiempo de compilación ... todas esas cosas. Un RPM es un paquete binario. Si desea instalar automáticamente las dependencias, usted tiene que tener una herramienta de alto nivel como urpmi o apt-get para hacerlo. Y, ya que es binario, tienen que lidiar con los conflictos de versiones de la biblioteca, o no opciones de compilación, o cualquiera de las otras limitaciones que incurra por no sobre la base de su propio sistema.
Y, además, los puertos, como el resto de los sistemas BSD, están centralizados. El "árbol de ports" es en realidad un gran árbol de directorios con un montón de directorios por categorías, cada una con un Makefile con algunas definiciones de las variables, un archivo de suma de verificación, una lista de empaque, y varias cosas posibles. Cada uno de esos directorios representa un solo programa, el cual es descrito por los archivos presentes. Un montón de magia negro que sucede detrás de las escenas para que cuando ejecuto make, busca y descarga el archivo de distribución de donde es, hace que cualquier cambio o los parches necesarios, se encuentra de forma recursiva e instala todas las dependencias, las llamadas de configuración de GNU o imake o lo que sea los programas de preparación son necesarios con las opciones correctas, se inicia la compilación con las opciones correctas, etc
Sin embargo, todos los archivos de ese gran árbol de directorios se mantienen por el proyecto FreeBSD. Cuando alguien escribió KDE, por ejemplo, no por arte de magia aparecen en los árboles de los puertos de todo el mundo. Alguien tenía que escribir todo lo necesario "pegamento" para construir un puerto por él, y luego confirme los archivos en el repositorio CVS de FreeBSD por lo que sería en la colección de ports. Así que de nuevo, hay un cierto nivel de garantía de que funciona con otras cosas en la colección de ports. Las dependencias que tiene que estar ahí, porque no se puede declarar una dependencia a algo que no es en los puertos.
Las cosas se rompen, por supuesto. Tal vez una dependencia tendrá su sede principal desaparecen, así que nadie puede descargar el archivo de origen y comenzar a instalarlo. Tal vez una nueva versión de algún programa de tercero se romperá un programa, que mantendrá otras cosas que dependen de él de trabajar. Así que por supuesto no resuelve todos los problemas. Sin embargo, la incidencia de "Yo quiero una, lo que requiere B, que no puedo encontrar" es mucho menos de lo que es con esa esencia, los sistemas descentralizados, como los RPM de llegar a ser.
Para obtener información más detallada (como siempre), vea la sección del manual sobre los puertos .
Lo liberan!
Ahora tenemos una comprensión práctica de la dicotomía entre el "sistema base" y el "árbol de ports, que me parece realmente una gran cantidad de viajes de los usuarios de Linux para arriba. Vamos a hablar un poco sobre las emisiones y mejora .
Las actualizaciones del sistema:
La construcción del mundo en menos de 7 días
Como resultado del hecho de que el sistema de base de BSD se desarrolló como una sola unidad, usted puede conseguir fácilmente el código fuente completo para el sistema base completo. Y por la forma en que está diseñado, puede ejecutar un único comando en el nivel superior para compilar todo. Para la mayoría de nosotros, esa es la forma normal de actualización, se actualiza el árbol de fuentes a las últimas absoluta (con un par de horas, por supuesto) los cambios realizados por cualquier persona, compilarlo, instalar los nuevos binarios, y ya está. Miller tiempo.
Por supuesto, no necesariamente quieren lo último. Se pudiera tomar las fuentes de la semana pasada, por ejemplo. Y, normalmente, lo hace todo el proceso de reconstrucción en cuatro pasos. Se empieza con una buildworld hacer que compila todos los programas de usuario, entonces buildkernel hacer que compila el núcleo. A continuación, tomar una respiración profunda y hacer installkernel para instalar el nuevo kernel, y hacer installworld para instalar el nuevo entorno de usuario. Cada paso está automatizado por un objetivo en el Makefile.
Por supuesto, me voy a toneladas de detalle. Cosas como la que describe la configuración del núcleo, la fusión de los archivos de configuración del sistema, incluye la limpieza de ... todos los detalles arenosos. Si quieres leer sobre eso, comprobar el manual de FreeBSD , en particular las secciones relativas a la actualización y la construcción y configuración del kernel , o las diversas formas otras de la documentación disponible. Pero esa clase de cosas se vuelven una segunda naturaleza después de hacer un par de veces. En realidad, el proceso de actualización de su sistema se reduce hasta los cuatro comandos. Me resulta mucho más fácil que tener que resolver las dependencias entre versiones y cambio de la biblioteca y como a través de un trillón de paquetes binarios.
Esta información se basa principalmente en FreeBSD. NetBSD utiliza un modelo diferente de hacer las compilaciones del sistema. OpenBSD tiende a ser mucho más a favor de reinstalaciones, por lo menos para los cambios de versión mayor.
Software Addon
Bueno, seguro que fue fácil. Pero, ¿qué pasa con todos los paquetes de complemento? ¿Cómo podemos manejar eso? Vamos a hablar de cómo instalar y actualizar los puertos .
Ports:
¿Si se construyen dos puertos (ports), es que un par-a-los muelles?
Otros-en paquetes que ha instalado tendrá que ser actualizado de la misma manera que los instaló originalmente, mediante la instalación de un paquete de la versión más reciente, o la construcción de un puerto versión más reciente. El árbol de ports es en sí mismo también se mantiene en el CVS al igual que el árbol de código fuente, lo que se puede actualizar a través de CVS o CVSup al igual que el árbol de código fuente. También, busque en el portupgrade de utilidad, que es un conjunto de scripts escritos en Ruby para que sea más fácil de actualizar los puertos ya está instalado.
El árbol de ports es básicamente un enorme esqueleto. Cada paquete individual tiene su propio directorio, que contiene una serie de archivos. Cada uno tiene un Makefile, que define algunas variables relacionadas con ese paquete, al igual que en el sitio principal para la distribución, los números de versión, las instrucciones especiales para autoconf, y una lista de otros paquetes que esto depende de (Mozilla, por ejemplo, requiere la X bibliotecas, entre un millón de cosas de otro tipo). Tendrá unos pocos archivos que contienen cosas como una descripción de un párrafo del paquete, una lista de empaque para los archivos que se va a instalar, y así sucesivamente. Y puede incluir los parches que pueden ser necesarios para el software para compilar o ejecutar. Esa es la "portabilidad" del árbol de ports, que la transferencia ya está hecho.
Hay todo tipo de magia dentro de una gigantesca tela de Makefiles muy complejo. Afortunadamente, usted no necesita saber nada de eso. Todo lo que necesitas saber es que si ejecuto make, obtendrá automáticamente la fuente de todo lo que el sitio principal para que el paquete es, automáticamente, el parche, la configuran automáticamente con lo que la magia es necesario, y automáticamente se compila. Y si necesita de otros paquetes, que automáticamente comprueba si están instalados, y si no lo son, automáticamente se recurse abajo y compilar e instalar esos, también. Luego, cuando se ejecuta make install, que lo instalará automáticamente, y automáticamente lo registra como un paquete para que pueda actualizar o desinstalar paquetes con herramientas más tarde.
Es diabólicamente complejo en detalle, pero muy sencillo de usar.
O bien, puede utilizar los paquetes binarios. Aquí, todo va a utilizar el comando pkg_add. Y si usted lo usa con el modificador-r, automáticamente se intentara buscar el paquete solicitado y sus dependencias de las páginas web de FreeBSD.
Mucha más información sobre el proceso completo está disponible, como siempre, en el manual, en concreto, los puertos y los paquetes de capítulo .
Filosofía:
General
Ah, ahora esta es la parte que me gusta. Un montón de generalidades crecientes, sin un solo hecho difícil a la vista. Ahorra la molestia de tener que hacer la investigación. 8-)
Lo que voy a discutir aquí es algunas de las diferencias filosóficas reales e imaginarios que a la vez causa y son causadas por algunas de las diferencias técnicas y de organización que hemos discutido. Como la mayoría de tales discusiones, hay poco que es difícil y rápida aquí, hay muchas coincidencias en las actitudes de las personas en los diversos campos. Y ciertamente hay un montón de flak totalmente merecido por ambas partes a adoptar, así como antibalas inmerecido que han sido obligados a hacerlo. Sin embargo, creo que es importante examinar algunas de estas divisiones, sin tratar de suponer que uno es "correcta" y la otra es "incorrecto".
Se dan cuenta, debo destacar, que una gran cantidad de esto es muy general. Prácticamente todos los puntos está plagado de excepciones. Y los dos sistemas a menudo no "seguir las reglas", o no cumplen con sus propias expectativas. Es más una cuestión de inclinación de la aplicación sin excepciones. Sólo estoy diciendo esto ahora, así que no tiene que mantener la calificación y recalificación cada declaración que hago, hasta que sea imposible de leer.
Caos vs Orden
Una generalidad común es que la metodología de Linux es la viva encarnación del caos, mientras que la metodología de BSD es mucho más acerca del control. En gran medida, es cierto. Linux nació de un fondo de hacking en el tiempo libre, mientras que BSD surgió de una experiencia en ingeniería controlada. Por supuesto, hay un montón de caldereros fin de semana la escritura de código BSD, y un montón de tiempo completo, programadores profesionales que elimina toda en varias partes de Linux. Pero la sensación de los sistemas todavía no refleja ese tipo de cisma.
Ya hemos discutido la metodología de la construcción; BSD construye un sistema central que es uniforme, mientras que las distribuciones de Linux se pre-existentes y piezas más o menos los junta atropelladamente. Naturalmente, el método de BSD es mucho más susceptible de mantener las cosas ordenadas, mientras que el método de Linux requiere prácticamente un caos total. Eso no quiere decir que el caos es intrínsecamente malo, o el fin intrínsecamente bueno. Son simplemente diferentes entornos.
Linux también en general, persecución de nuevas versiones de otros programas mucho más estrecha, adoptando en particular los cambios más importantes, como Apache 2 mucho antes de BSD se mueve de esa manera. Ahora, la separación estricta de la "base" vs "puertos" de BSD, así como la estructura del árbol de ports sí mismo, que sea más fácil tener varias versiones paralelas de los paquetes de BSD. A veces, es aún posible y fácil de tener varias versiones instaladas al mismo tiempo. Linux, por no tener ese tipo de separación, hace que sea muy difícil tener versiones en paralelo, y en su lugar casi requiere un solo "bendijo" uno.
Y la primacía de la fuente de la compilación de paquetes también hace que sea más fácil de manejar múltiples versiones. Por ejemplo, PHP debe ser compilado de forma diferente dependiendo de si se está utilizando Apache 1.3 o Apache 2. Con los paquetes de código como los puertos, que puede definir una variable ambiental cuando compilar e instalar PHP para decirle si va a utilizar Apache 1.3 o Apache 2. Con los paquetes binarios, que tendría que tener dos paquetes separados disponible, lo que dará lugar a confusión, tarde o temprano.
Derecho vs incorrecto
La diferencia también se puede ver en la manera de integrar el código del núcleo. BSD tiende a arrojar siempre lejos de las soluciones de hacker cuando no hay siquiera un indicio de una solución adecuada en las alas. La teoría es que es mucho más fácil que esperar a la respuesta limpia, que para integrar la respuesta sucia ahora, por varias razones. Por un lado, si se integra la respuesta sucia, que reduce el incentivo para aplicar una mejor. Por otra parte, una vez que ensuciar la arquitectura para integrar algo que nunca se limpia de nuevo. Tú lo sabes tan bien como yo. Oh, claro, te dicen que es temporal. Pero usted sabe que no hay nada tan permanente como temporal para salir del paso. Y que las cosas crezcan. La única manera de evitar dar una milla es negarse a dar la primera pulgada. Es como los impuestos, ¿cuándo fue la última vez que vio un impuesto temporal que nunca se fue?
También lo vemos en lo que hay. Tradicionalmente (aunque no universalmente), Linux integra soporte para una pieza de hardware antes de BSD no. Sin embargo, cuando se integra BSD, funciona. Es sólido. Es estable. Controladores de Linux tienden a tener una variación mucho más, porque van a ser llevados en las primeras. En muchos sentidos, esto refleja el caso de add-on más arriba, pero a la inversa. BSD tiene un sistema de base estrictamente controlada, y puede ser muy libre con la creación de software adicional, ya que todo es añadido por el usuario de forma independiente. Linux tiene un acoplamiento muy suelta y fluida entre el kernel y utilidades, sino el espacio de usuario como un todo, por no tener una base / separación complemento, requiere mucho más trabajo para mantener constante, lo que supone una exigencia mucho mayor para una central de "bendición" de las diferentes versiones de los paquetes. El amplio uso de binarios, en lugar de distribución de código fuente sólo tiene que mucho más.
Audiencia
Bueno, ya hemos cubierto bastante bien público. Linux, con su fondo retoques caóticos, naturalmente apela a una personalidad diferente, en general, de BSD con su formación académica y rigurosa. Yo, personalmente, creo que es retenido Linux en algunos aspectos que son cada vez más evidentes últimamente. El caos al azar sin duda tiene sus ventajas, pero no sin sus desventajas.
Consecuencias de Diseño
La metodología poco a poco el montaje de Linux hace que sea fácil (en teoría) para actualizar sólo una sola pieza. En BSD, es fácil de actualizar las piezas individuales que son "add-on" de los puertos, pero las piezas que se integran en el sistema de base no puede ser fácilmente mal estado de manera independiente.
OpenSSL, por ejemplo, se importa y se mantienen en el sistema base, pero no sólo se puede actualizar por sí mismo, tengo que actualizar el sistema base completo. Y que incluye el núcleo, así como ls y gzip y gcc y menos y ssh y Sendmail y BIND. (Por supuesto, siempre puedes instalar diferentes versiones de sendmail y BIND, o Postfix y djbdns, a través de los puertos, y sólo tiene que ejecutar la versión diferente, en lugar de la base de una, sino que sólo va a sentarse a comer espacio en disco, que es barato).
En teoría, eso es un problema. En la práctica, he encontrado que por lo general es más fácil de todos modos. No puedo contar el número de veces que me he encerrado con una caja de Linux a distancia mediante la actualización de OpenSSL, a continuación, tratando de actualizar o reiniciar ssh y tener que dejar porque está buscando una versión diferente de OpenSSL. Con el sistema integrado, que no es un problema, ya que automáticamente será sincronizado. Y con la construcción de la fuente de ellos, automáticamente será sincronizado de todos modos, incluso si no se integraron en conjunto en el sistema de base.
Como resultado de las situaciones de estos y otros tipos, no es tan fácil de mantener los sistemas Linux completamente "up-to-date". Los lanzamientos individuales de una distribución son mucho más independientes el uno del otro, por lo que es más difícil de convertir su sistema de RedHat 7.3 en un sistema RedHat 8. Los nuevos paquetes de 7,3 se están realizando y actualizada por una cierta cantidad de tiempo, ya menudo realmente nunca las nuevas versiones de paquetes con los que hacer in Y si usted trata de utilizar los paquetes de una versión distinta de su distribución, o desde otra distribución, que a menudo ejecutar en las dependencias faltantes y los problemas con diferentes versiones de otros programas. Y tan difícil como es mantener un sistema de puesta al día, es aún más difícil para poner al día después de un período de abandono.
Por otro lado, he sistemas BSD que he instalado en 1997, lo que siempre se han mantenido (y siguen siendo hoy en día) con el último núcleo y la última versión de Apache y el último Mozilla y las últimas cosas. Con un sistema Linux, sin embargo, tienden a encontrar a ti mismo tratando de mantener un puñado de cosas obvias actualizado, mientras que otros consiguen cada vez más atrás, hasta que finalmente acaba de volver a instalar la última versión para ponerla al día. Las metodologías de apelar a tipos muy diferentes de los administradores.
Mitos sobre BSD
Hemos pasado mucho tiempo hasta el momento de hablar sobre las diferencias entre Linux y BSD. Hemos dedicado mucho tiempo a hablar sobre cómo funciona el BSD. Y ahora que hemos cubierto una especie de lo que tienen BSD "es". Por lo tanto, vamos a hacer un rápido viaje a lo que BSD no es, y disipar algunos mitos .
General
Hay todo tipo de mitos y de las objeciones y el "conocimiento común" y la "sabiduría convencional" y flotantes, alrededor de BSD. Siempre estoy un poco sorprendido por lo rápido que algunas personas son Linux para adherirse a tales simplificaciones excesivas y las declaraciones de muertos hace mucho tiempo acerca de los BSD, sobre todo porque entonces tanto esfuerzo gritos de la gente haciendo lo mismo con respecto a Linux. Oh, bueno. Vamos a destrozar algunos.
Hardware
"BSD no es compatible con hardware común".
¿Tiene el soporte de hardware de Linux que BSD no? Probablemente. ¿Tiene importancia? Sólo si tiene el hardware.
Voy a apostar Windows es compatible con hardware de Linux no lo hace. Por lo demás, MacOS probablemente compatible con el hardware que ninguno de los demás lo hacen. BSD compatible con hardware más comunes que se metía en un servidor, el hardware más comunes que se metía en una estación de trabajo, el hardware más comunes que se metía en un escritorio ... Hay deficiencias, pero las diferencias cambian de versión a versión, al igual que cualquier otro sistema.
Apoyo a la tarjeta de vídeo, por ejemplo, casi nunca se afirmó en la documentación de BSD, mientras que las conversaciones documentación de Linux mucho en ello. Esto parece extraño, hasta que te das cuenta de que en la visión del mundo BSD, el sistema operativo no está apoyando ninguna de esas tarjetas de vídeo, X, que es un paquete independiente. Así que usted puede utilizar cualquier tarjeta de vídeo bajo BSD que se puede en Linux, ya que ni el kernel BSD, ni el kernel de Linux es el apoyo a la tarjeta de vídeo. Ahora, eso no es estrictamente cierto, sobre todo en algunos de los tramos más esotéricos de 3D y el DRI, que requieren vínculos de hardware más directa y arranque en el propio núcleo. Por supuesto, no se sigue que, por lo que ni siquiera saben cuál es el estado actual del mundo está en FreeBSD, por no hablar de Linux. Tal vez BSD no tiene el apoyo a la par con Linux en eso. Tal vez lo hace. No lo sé, y lo más probable es que el cambio entre el momento en que escribo esto y el tiempo de leerlo.
Pero la mayoría de hardware es sencilla. Más común de IDE y SCSI controladores de almacenamiento masivo de funcionar bien. Incluso la mayoría de los controladores RAID son compatibles hasta cierto punto. La mayoría de las tarjetas de red, cableado y las tarjetas inalámbricas, la mayoría de sonido, algunas tarjetas criptográficas de ayuda ...
Pero es simple. No me importa lo que el hardware del sistema operativo compatible, siempre y cuando se apoya lo que tiene. Lea la lista de soporte de hardware y / o utilice el arranque hacia arriba. Puede que se sorprenda.
En caso de duda, consultar las listas. Listas de soporte de hardware están disponibles por la liberación, como las listas de 5.2-RELEASE y 4.9-RELEASE de FreeBSD.
Disponibilidad del programa
"Sin embargo, Linux tiene más programas de BSD!"
¿Cómo lo sabes? La mayoría de estos "programas" que está tan caliente sobre cosas que son de código abierto o fuente disponible, de todos modos. Si está escrito bastante portable, el 95% o más de los que se compila el derecho de descuento en cualquier vagamente POSIX del sistema. Heck, basta con ver en el árbol de ports, hay más de 10.000 programas y paquetes de allí.
Por supuesto, hay una gran cantidad de software por ahí que no se compilará en otra cosa que Linux. A veces, eso es porque realmente no requiere instalaciones de Linux que sólo tiene o hace cosas que son importantes sólo en Linux. A veces, eso significa que tienes que coger un 2x4 y ir a buscar al autor, ya que han puesto en algo imcompatible gratuitamente a través de la malicia o la pereza. Hay personas que hacen lo mismo con BSD, o con HP / UX, por supuesto, pero el rápido crecimiento de la comunidad Linux, combinado con el número de personas que han escrito los programas con menos experiencia en ingeniería de software tradicional, hacen que sea mucho más visible que .
Por supuesto, hay algunas cosas que no se cruza a la generación, en particular los que se pegan los dedos de profundidad en los detalles de implementación. Algunos sólo necesitan un poco de trabajo al puerto, un trabajo importante, y algunos ni siquiera tienen ningún significado en otros sistemas (¿Cuándo alguien alguna vez el puerto Defrag Microsoft a Linux, f'rinstance?) Pero si es útil, es probable que sea portado , o hay algún equivalente, o de contrapartida.
Y luego hay cosas que no son fuente disponible, sino que se distribuye sólo en formato binario. Navegadores de Netscape, Opera, algunos programas de Office, RealPlayer, etc Ahora, la mayoría de los que se enumeran tienen versiones de BSD disponibles también, pero aún así, FreeBSD, en particular, y (creo) todos los de BSD tiene una capa de emulación Linux que ofrece compatibilidad binaria . No siempre va a hacer el truco, sobre todo (como antes), cuando algo está alrededor de arranque en profundidad la aplicación específica de los detalles. Pero funciona con sorprendente frecuencia. Binarios de Linux sólo puede ser recogido y se ejecuta en un sistema BSD (por lo menos entre los sistemas i386 y, a veces en otras arquitecturas). Más detalles están fuera de alcance, pero si quieres más información, puede leer sobre él en el manual .
Como regla general: Mira la colección de ports. Es probable que usted encontrará lo que usted está buscando. Y si no, es probable que haya algo entre los 10.000 otras opciones que se ajusten a la ley.
Popularidad
"Sin embargo, Linux es más popular."
¿Y qué? Windows es aún más popular. Ir usarlo.
Por lo general, el argumento de la popularidad que realmente significa cosas como: "Es más fácil encontrar apoyo", o lazos en el tema del programa, la disponibilidad más arriba. Pero hay un montón de lugares y personas que ofrecen soporte comercial para BSD, y la comunidad en las listas de correo y grupos de noticias es grande y bien informado. Así como los usuarios de Linux que el argumento de "¿Quién tiene que pagar por el soporte? Mira lo que podemos obtener de forma gratuita", lo mismo se aplica a este lado de la valla.
Usabilidad
"BSD es difícil de usar, más avanzado, más complicado, menos fácil de usar."
Bueno, ¿cómo puedo contrarrestar eso? ¿Qué es más difícil? Es diferente de Linux, claro, pero ¿y qué? De muchas maneras, me parece mucho más lógico y fácil de entender. Ahí es donde todo el esfuerzo y el esnobismo de la consistencia y la limpieza vale la pena. Linux es mucho más "diferente" y "difícil de usar" y "más avanzados" y "más complicado" y "menos fácil" de Windows, también, recordar. Uno piensa que no es porque se ve a través de que a la mayor potencia y flexibilidad que viene con aprender un poco sobre ello. BSD no es más difícil, sólo requiere pensar un poco diferente.
BSD siempre ha considerado que es más importante para que el usuario avanzado algo más, que para que el principiante hacer más. La teoría, por supuesto, es que los novatos se convierten en usuarios avanzados con gran rapidez (un año o dos), mientras que los usuarios avanzados de utilizar el sistema durante mucho tiempo (décadas). Así que es probable que haya menos "suaves" toman de las manos interfaces integradas en el sistema. Por otro lado, los paquetes de complemento llevar a los suyos. Si KDE tiene algún tipo de usuario-ayuda o tutorial o lo que sea construido en él (no sé, yo no lo uso), que lo tendrá en BSD también, ya que KDE es KDE donde quiera que lo use. Por lo que rara vez como un gran problema como parece.
Elitismo
"Los usuarios de BSD son un grupo de élite egoísta snobs grosero."
Así es. Y orgulloso de ello. :-)
No se puede caracterizar a una comunidad entera en una frase. Hay un montón de gente en la comunidad FreeBSD que no quieren oír hablar de su problema a menos que haya trazado el código fuente del mismo y encontrar exactamente dónde está el problema (y es mejor que sea un problema real, no un error del usuario estúpido!) . También hay un montón de gente en la comunidad FreeBSD que va a saltar de su piel para ayudarle en el problema más simple.
El "tipo RTFM' respuestas suceder, por supuesto. Sin embargo, de que se produzcan en la comunidad Linux, también. Nadie es demasiado aficionado a alguien haciendo una pregunta que es el punto # 4 en las preguntas frecuentes que todo el mundo supone que ha leído. La documentación de FreeBSD incluye una gran cantidad de temas, y en detalle bastante completa. Utilizarlo. Y porque el sistema está desarrollado a nivel central, una gran parte de la documentación también se encuentra desarrollado a nivel central y, allí mismo en el sitio web de FreeBSD .
Nadie quiere tratar de responder a una pregunta en la pregunta no está dando ninguna información útil, ya sea. Y cuando usted ha contestado a la misma pregunta que ya está en la documentación de un centenar de veces, y pidió la misma información adicional acerca de un problema cien veces, usted tiende a tener más cortante acerca de sus respuestas el ciento uno. Eso no significa que sea una buena cosa, pero todos los hoteles de la comunidad técnica con la misma cosa.
Es posible que el BSD, debido a sus antecedentes más técnicos y de ingeniería, termina con el elitismo más prevalente que en otras comunidades. No estoy seguro de lo que realmente es, yo creo que es sólo más visibles. Una de las consecuencias de un desarrollo más centralizado es que los usuarios finales y los administradores de sistemas profesionales y programadores profesionales y la mayoría de los desarrolladores del sistema, todos comparten el mismo "espacio". Con Linux, tienes la lista de correo linux-kernel , que es prácticamente todos los desarrolladores. Y sólo los desarrolladores del kernel y mantenedores. La marca y el cron y localizar a los desarrolladores y mantenedores de alquitrán y tienen sus propias listas a otra parte. No están muy bien separadas áreas de recolección, como las listas de correo, grupos de noticias y foros de la web, para administradores, para los programadores, y para los usuarios finales.
En contraste, la mayoría de lo relacionado con FreeBSD pasa ya sea en el freebsd-* @ listas freebsd.org de correo, o uno de los grupos de noticias de unos pocos. Eso es todo, desde los usuarios hacer preguntas como "¿Cómo puedo obtener ppp de trabajo?", A los desarrolladores de decir: "Quiero agregar un campo a device_t". Y no es raro que los usuarios sin experiencia utilizar la lista de distribución errónea de las preguntas. Claro, usted quiere empujar suavemente en la dirección correcta, pero las frustraciones se acumulan. Y algunos incluso tomar "Esta es una lista de desarrollo, que quiere hacer esa pregunta en [email protected]" como una declaración de "elitista" o inútil.
Por lo tanto, son usuarios de BSD elitista? Bueno, tal vez. Tal vez era más frecuente hace años, la reputación como la que se rezagan en mucho, mucho tiempo después de las razones por las existentes ya son historia. Personalmente, creo que el elitismo BSD es mucho más visible debido a la comunidad mucho más estricta. Trate de conseguir un flujo de gente que pide la lista linux-kernel cómo grabar un CD-R o activar una función en Apache, ver cuánto tiempo tarda hasta que haya "elitismo inútil" cargos por venir.
Conclusión
¿Por qué usan BSD?
Simplemente funciona. Al instalar el sistema, un grupo conjunto de piezas están ahí. Período. Cuando pasan por el proceso de actualización, que funciona. Al instalar un paquete de complemento, funciona.
Es compatible con prácticamente cada pieza de hardware que he lanzado a él en casi una década de uso. Y que el apoyo Simplemente funciona, no tiene escamas o fallar a partir de una versión a otra.
Yo puedo elegir si seguir con versiones comerciales de probada eficacia, para seguir la rama-STABLE, realizar el seguimiento del estudio CURRENT-rama ... Sin embargo, cerca del borde que quiero vivir. E incluso el borde bleedingest por lo general funciona bien. Puedo tomar un sistema que no ha sido tocado en 3 años, y lo pongo al día con el mínimo dolor.
Cuando surge un problema, ya sea de seguridad o de estabilidad o rendimiento, o incluso sólo la estética, que se fija. Y debido a la metodología de desarrollo, que puede obtener las correcciones más tarde esa misma noche. Todo el tiempo. Cuando una nueva característica se añade, lo puedo tomar en este momento, no esperar una semana o un mes o mes 6 hasta la próxima versión. Puedo ver, zumbando en mi correo electrónico, todos los cambios que ha hecho. O bien, cuando algo se rompe, lo puedo arreglar yo mismo, y ser capaz de enviar la corrección de la derecha de a alguien que puede conseguir lo incorporó al sistema de derecho de distancia. Yo lo he hecho antes, voy a hacerlo de nuevo, y también lo han hecho miles de otras personas.
Está diseñado para todos encajan. No sólo munged después del hecho-para ir juntos bien, pero diseñado desde cero para ser un sistema único y coherente. Y cuando algo no encaja, que es un error que se fije, no sólo "parte del juego".
Ha tenido caprichos. Ha tenido caprichos. Ha tenido a cabo y fuera de errores. Ha tenido extrañeza. Ha tenido un comportamiento inexplicable. Me ha dado engañosos mensajes de error. A veces, con entrada y salida rompe cosas que funcionó ayer. Y todos aquellos que sucederá en el futuro. Sin embargo, cada vez, alguien va a la derecha por delante y las comunicaciones, y se analiza, y la fija. He leído las listas de correo, y veo estas cosas pasan. Veo el problema planteado, veo a la gente que conocen el área discutirlo, veo las soluciones propuestas y se desecha y probados y convenidos, y los veo comprometidos en el repositorio principal. Y por lo general en el momento en que veo que sucede, ya puedo poner mis manos sobre él.
Es sólo un nivel de coherencia y transparencia y usabilidad años luz más allá de cualquier otra cosa que he visto. Su camino hacia el desarrollo está dirigido a méritos técnicos y las soluciones correctas, no sólo cuenta con atractivos y hacks viable. Y creo que esa es la única manera de ser sostenible a largo plazo.
¿Por qué debería correr BSD?
Bueno, yo no lo sé. Hace lo que tiene ahora satisfacer sus necesidades? Entonces es probable que no tenga una necesidad urgente de cambiar nada.
Hay un montón de ensayos y luchas de la existencia de por qué X funciona mejor que el Y, para cualquier valor de X e Y. No quiero escribir otro. Si y cuando usted tenga tiempo o la inclinación o los recursos para tratar de BSD, quiero que este ensayo para ayudar a entender por qué algunas de esas diferencias están ahí, y lo que es el resultado de esas diferencias.
Más información
Todos los sitios de BSD ( FreeBSD , NetBSD y OpenBSD ) tienen una amplia documentación disponible en sus sistemas. Debido a que la base del sistema está integrado, todas las cosas que tratan con él puede ser documentado con autoridad en un solo lugar. Que describen las fortalezas y debilidades de los sistemas individuales, cómo instalarlos, cómo mejorar, cómo admin ellos ... Todo lo que necesita.
En la documentación de FreeBSD en particular, el artículo sobre Qué es BSD es similar a este ensayo, en el que se describe BSD y su contexto histórico. Hay todo tipo de documentación, a partir de documentos de introducción que describe los conceptos básicos de FreeBSD y sistemas de tipo Unix, para una descripción detallada del funcionamiento interno del kernel, y todo lo demás. Desplácese por la página.
Y, por supuesto, el manual de FreeBSD , y el FAQ de FreeBSD están rellenos con la información usted ni siquiera sabía que necesitaba. No salgas de casa sin él.
El BSD también tienen listas de correo y grupos de noticias disponibles para hacer preguntas. Suelen ser muy sensible y lleno de personas que han pasado por el mismo proceso de aprendizaje que estaría pasando. Vea los sitios individuales para mayor información.
El Fin
Puede ser difícil tratar de averiguar BSD cuando estás acostumbrado a Linux, ya que las diferencias básicas que muchos pueden tropezar. A pesar de que ambos sistemas son muy similares debido a su herencia de Unix, las estrategias de desarrollo y la aplicación varían ampliamente. Espero haber ayudado a darle una mejor idea de cómo los sistemas BSD de trabajo y se ponen juntos.
Por favor, no dude en escribirme si hay algo aquí que no entiende o cree que puede mejorar, es un eterno trabajo en progreso, como todo lo demás en el mundo.
Los ordenadores son diversión. Disfrutar.
Bueno una de las razones por lo que hice este post es para que sea as comprendido BSD en taringa y para todos los usarios de Linux, y talvez incluso alcanzar a que en taringa BSD tenga su propia categoria, bueno gracias por leer y saludos!
Puedo ejecutar FreeBSD en mis equipos. Muchos de mis amigos ejecutar Linux , o por lo menos una de las distribuciones de la misma. Naturalmente, entonces, estamos de acuerdo en que un sistema operativo estilo Unix es la mejor opción, pero no estamos de acuerdo en que para su uso.
Ha sido mi impresión de que la comunid BSD {y,} s, en general, comprender mucho mejor que la comunid Linux {y,} s Linux entender BSD. Tengo algunas teorías sobre por qué es, pero eso no es realmente relevante. Creo que un montón de gente de Linux se desconectan BSD, porque no entiendo muy bien cómo y por qué es en su conjunto. Por lo tanto, esta diatriba, como una persona BSD, quiero tratar de explicar cómo BSD funciona de una manera que las personas que Linux puede absorber.
Si bien no hay gran similitud entre los sistemas operativos en la mayoría de los casos, también hay muchas diferencias. A medida que la sonda más en las diferencias, se encuentra que surgen de profundos desacuerdos. Algunos desacuerdos sobre la metodología de desarrollo, algunos de despliegue y el uso más, algunos de lo que es importante, algunos de quién es importante, y algunos sobre los que los sabores de helado es superior. Sólo comparando las diferencias superficiales no le dice nada, es la diferencia más profunda que explicar y justificar por qué cada grupo hace las cosas de la manera que lo hacen.
Algunas ideas preliminares
Hay un montón de diferencia filosófica entre el mundo de Linux y el mundo BSD. Y hay un montón de expresiones al respecto por ahí. Uno particularmente me gusta más o menos así:
BSD es lo que obtienes cuando un grupo de hackers de UNIX se sientan a tratar de puerto de un sistema Unix para la PC. Linux es lo que obtienes cuando un grupo de hackers PC sentarse y tratar de escribir un sistema de Unix para PC.
Ahora, me gusta que chiste no, porque es una especie de verdad absoluta, revelada, sino porque le da una sensación muy buena para algunas de las diferencias. Los BSD, en general, son mucho más parecido a Unix tradicional de lo que es Linux. Mucho de eso es porque son de línea directa descendientes de los BSD de Berkeley, que era un descendiente directo de línea de la original de AT & T Unix. Unix-la marca-es una marca registrada de The Open Group, y el código de Unix, es propiedad de SCO, por lo que uno realmente no puede decir que los BSD son realmente Unix (que es el tipo de declaración que provocó la demanda de USL / UCB espectáculo, de hecho). Sin embargo, en muchos sentidos, los BSD son derivados directos de Unix tradicionales.
Que muestra a través de muchas formas. Se manifiesta en el diseño del sistema base y el embalaje de los addons. Se manifiesta en la partición de la memoria de masa. Se manifiesta en muchos detalles de los comandos. Y eso se nota en las actitudes y los reflejos y los prejuicios de los desarrolladores, que se reflejan en el código y en los usuarios.
BSD está diseñado. Linux crece. Tal vez esa es la forma sucinta sólo para describirlo, y posiblemente el más correcto.
Conoce a los jugadores
Voy a dar aquí una breve introducción y discusión de los sistemas voy a estar hablando. Tenga en cuenta que las historias presentadas no son exhaustivas o de autoridad, y no se ha tratado de hacer de esa manera. Acuerdo.
Unix
Unix no es (precisamente) un sistema operativo.
Bueno, lo es, y no lo es.
En el uso específico, Unix es un sistema operativo desarrollado originalmente a finales de los años 60 en los Laboratorios Bell por Ken Thompson y Dennis Ritchie. Durante los años transcurridos desde entonces ha sido desarrollado y distribuido como un sistema operativo comercial, y un sistema de investigación que operan, por Bell Labs y gobierno de Estados Unidos y USDL y Attis y la USL y Novell y SCO, y nadie más que pudiera llegar a un acrónimo.
Probablemente no es exagerar demasiado decir que Unix es el sistema operativo más influyente en la informática moderna. Todos los dispositivos de cómputo de propósito general que encontrarás, y una gran cantidad de dispositivos de cómputo de propósito específico, va a utilizar ideas y conceptos y el código de frecuencia a partir de algo en el árbol de la familia Unix.
Cuando usamos 'Unix' de la palabra, entonces, mucho más a menudo significa que la forma general, que el sistema operativo específico que lleva el nombre de Unix ™. La forma general significa "cualquier sistema operativo que, en el diseño y la ejecución y la interfaz y el sabor general, es sustancialmente similar al del sistema Unix." Esto significa que todos los BSD, Linuxen, SunOS, Tru64, SCO, IRIX, AIX, HP / UX, y un elenco de cientos o miles de personas.
No estoy interesado en entrar en discusiones semánticas sobre cuántos ángeles pueden bailar en una cabeza de pelo de división. Baste que cuando usan frases como "los sistemas Unix", quiero decir exactamente lo que pienso cuando uso la frase. Pedantería Ciudad ---> de esa manera.[/color]
Linux
Linux también significa varias cosas. Se trata de un núcleo, escrito originalmente por Linus Torvalds, cuando era estudiante en Finlandia. Desde entonces ha sido una paliza, puñetazos en todo, ajustado, empujó, empujó, manejadas, digerido, escupir, pisoteó, masticado, echados fuera, trajo, y otro tipo de manipulación (no necesariamente en ese orden, por supuesto) por más los demás de lo que podía contar.
Linux es también el término para una familia de sistemas operativos. Si bien no son fascinantes discusiones metafísicas que tienen lugar en docenas de lugares en todo el mundo en este mismo segundo (te lo garantizo) acerca de cómo "Linux no es realmente un sistema operativo, es sólo un núcleo", o "Debería ser llamado" GNU / Linux ", o temas similares, yo también voy a evitar cuidadosamente que la semántica pozo negro. Cuando digo "Linux", me refiero a Red Hat . Me refiero a Slackware . Me refiero a Mandrake . Me refiero a Debian . Me refiero a SuSe . Me refiero a Gentoo . Me refiero a cada una de las dos distribuciones kadzillion por ahí, en torno a un núcleo de Linux con userlands sustancialmente similares, la mayoría basadas en las herramientas GNU, que están flotando alrededor del éter.
BSD
BSD es el acrónimo de "Berkeley Software Distribution". Originalmente, se trataba de un conjunto de parches y utilidades extra add-on para el sistema oficial de Bell Unix que fueron desarrollados por el CSRG de la Universidad de California, Berkeley. Con el tiempo, se desarrolló a cambios y / o reemplazar cada vez más del sistema, hasta que en algún punto indefinido se convirtió en su propio sistema operativo, básicamente, que sólo pasó a compartir trozos de código con el sistema Unix de Bell.
Por supuesto, todavía se requiere que usted tiene una licencia de Bell para utilizar el sistema, ya que muchos de ellos aún estaba código de Bell. Todo el código escrito por Berkeley, sin embargo, fue puesto en libertad bajo lo que se conoce como la licencia BSD, que básicamente se traduce en "Haz lo que te de la gana con el código, sólo nos dan crédito para escribirlo". Y una buena parte del código BSD terminó trabajando su camino de regreso a la "oficial" del sistema Unix también, en el Sistema III y V. del sistema y, una gran cantidad de ambas cepas se abrieron camino en las horquillas de varios comerciales de Unix.
Después de que el CSRG (la mayoría) disuelto y se detuvo el desarrollo del sistema BSD, varios grupos se fueron de diferentes maneras con el código. Uno de ellos fue el proyecto 386BSD, que tuvo el código de BSD y la hizo funcionar en la plataforma Intel i386. A medida que el proyecto 386BSD herida hacia abajo, dos grandes grupos tomaron el código de 386BSD para seguir adelante con él, uno fue el proyecto FreeBSD, el otro era el proyecto NetBSD. Más adelante en el camino, algunos desacuerdos internos dentro del proyecto NetBSD hicieron que el proyecto OpenBSD que se separó de ella.
Cuando digo "BSD", entonces, me refiero a una serie de cosas. Me refiero al sabor general de BSD y el enfoque de sistemas. En general, me refiero a lo anterior como lo ejemplifica la 3 actuales sistemas BSD libre disposición:
FreeBSD inicialmente dirigido conseguir el mejor rendimiento posible en la plataforma 386. Últimamente, se ha expandido a un número de otras plataformas como Alpha y SPARC, así como a los herederos de i386, Itanium de Intel y Opteron de AMD. Su principal objetivo es ser lo más robusto y eficiente como sea posible en sus diversas plataformas, tanto para funciones de servidor y escritorio.
NetBSD tiene como objetivo que se ejecutan en tantas plataformas como sea posible. Su objetivo es ser el sistema operativo más portable en el planeta, y parece que hacen un trabajo bastante razonable, en la misma.
OpenBSD se centra principalmente (algunos dirían «exclusivamente») en materia de seguridad y otros temas relacionados. La estrecha integración de la seguridad y la auditabilidad y la criptografía y temas relacionados son su principal objetivo.
Todos esos objetivos, por supuesto, son fungibles. Cada BSD se preocupa y trabaja en la seguridad. Cada BSD se preocupa y trabaja en el rendimiento. Cada BSD se preocupa y trabaja en la portabilidad. Trozos de código masivo son compartidos entre el grupo. Muchos desarrolladores trabajan en más de un sistema.
Los lectores astutos notarán que no menciono Mac OS X o de su capa subyacente Darwin como BSD. Mientras ellos están basados en un fundamento en su mayoría BSD, las capas superiores de OS X de Apple son puros. Con OS X, como usuario, por lo general lo utilizan como MacOS, no como BSD. Así, mientras que algunos de estos podrían ser aplicables académicamente para OS X, no es de ningún valor práctico en la comprensión de la misma. Darwin está más cerca de una sensación de BSD estándar, pero la mayor parte de su base de usuarios es gente que vino de BSD, así que es un poco fuera del alcance de este ensayo también. Mucha de la información general, sin embargo, es probable que transferir fácilmente.
Cuando se habla de detalles en este ensayo, voy a ser en su mayoría se refiere a FreeBSD, ya que es el que yo personalmente correr y yo, con mucho, el más familiar. En puntos muy específicos, no habrá diferencias significativas. Cuanto más general es el punto, lo más probable es que ser el mismo en todo el grupo. Filosóficamente, todos los BSD son muy similares, en contraste con la metodología de Linux. Y de todos modos, la filosofía es lo que este ensayo se trata de, en primer lugar.
El Sistema de Base
El concepto de "sistema base" es algo que, creo, hace que la mayoría de los problemas para las personas que utilizan la metodología de Linux. Cual es perfectamente comprensible, porque la idea simplemente ni siquiera existen en el mundo Linux.
Linux, desde el principio, era sólo un kernel. Sin entrar en el eterno debate de qué es un "sistema operativo", precisamente consiste en, es fácil afirmar que el núcleo por sí mismo no es muy útil. Tenéis necesidad de todas las utilidades de espacio de usuario para que funcione. Linux siempre ha sido un conglomerado, un núcleo a partir de aquí, un ls a partir de ahí, un ps desde ese otro lugar, vim, perl, gzip, el alquitrán, y un montón de otros.
Linux nunca ha tenido ningún tipo de separación entre lo que es el "sistema base" y lo que es "utilidades addon". Todo el sistema está "utilidades addon". MySQL no es diferente de ls de KDE del whois de CC de GnuCash desde ... Cada bit del sistema es sólo uno u otro paquete adicional.
Por el contrario, BSD siempre ha tenido un modelo de desarrollo centralizado. Siempre ha habido una entidad que está "a cargo" del sistema. BSD no utiliza GNU ls o libc de GNU, que utiliza ls BSD y BSD libc, que son descendientes directos de la LS y libc que estaban en las versiones BSD CSRG distribuidos. Nunca han sido desarrollados de forma independiente o envasados. No se puede ir "descargar libc BSD" en algún lugar, porque en el mundo BSD, libc por sí mismo no tiene sentido. ls por sí mismo no tiene sentido. El kernel por sí mismo no tiene sentido. El sistema en su conjunto es de una sola pieza, no un montón de pequeñas piezas.
Ahora, X no es parte del sistema base de FreeBSD. Se trata de un paquete de complemento. Puesto que X no es parte del sistema de base, aplicaciones como xterm X y KDE y Gnome, y ya sea Mozilla y gaim y xmms y como obviamente no puede ser parte del sistema base. Son paquetes adicionales, que son tratados y el pensamiento de otra manera. La principal diferencia es que están desarrollados.
NetBSD y OpenBSD tiene una implementación de X en la base, debido a la forma en que se integran con su controlador de consola. Ambos utilizan muy modificadas, versiones muy personalizadas, así que no es posible mantenerlo como un paquete separado.
El sistema de base de todo es desarrollado en conjunto. Sin duda, hay partes del sistema de base como sendmail y BIND y tcpdump y ssh y tal, que se encuentran en los paquetes de hecho individual que se desarrollan en otros lugares. Incluso hay algunos paquetes de GNU como groff y gcc y gzip y tal, que será inmediatamente reconocible para cualquier usuario de Linux. Pero se trata de un tratamiento especial, en que las versiones se importan en el árbol, luego se moldea para adaptarse al resto del sistema. De hecho, muchos de ellos solía ser de sólo BSD, BIND y Sendmail fueron desarrollados originalmente en Berkeley, como parte de BSD, y sólo más tarde se convirtió disponible por separado. Mi sistema FreeBSD afirma estar ejecutando la versión de gcc 3.2.2 en este momento. Técnicamente, no es realmente gcc 3.2.2, es un compilador de FreeBSD basado en gcc 3.2.2. La versión de tcpdump que tengo aquí no es técnicamente 3.7.2, es un tcpdump FreeBSD basado en tcpdump 3.7.2.
En la mayoría de los casos, por supuesto, la versión de FreeBSD es prácticamente indistinguible de la versión del proveedor. No es por lo general algunos cambios en la configuración de la compilación (Makefiles y tal) para que su construcción sin problemas con el resto del sistema, y de vez en cuando algunos parches necesarios para que se compile y ejecute bien. Algunos cambios son más amplios, y algunos son enormes. Sin embargo, todos son mantenidos juntos, y obligado a jugar muy bien juntos. No hay una garantía básica de que las piezas en un sistema de base de BSD encaja todo, por su diseño.
La razón principal de un paquete desde el exterior se mantiene importados y seguimiento en la base del sistema es que es, de alguna manera, bastante básica para el funcionamiento del sistema que es más fácil de lo que hay por defecto. FreeBSD utiliza actualmente el servidor ssh OpenSSH y el cliente, que se integran en el sistema base, ya que, en esta época, un método de acceso remoto seguro es lo suficientemente básico para cualquier sistema que es una necesidad práctica. gcc y binutils son parte del sistema base, porque ... así, son necesarios para construir el sistema de base. X y Gnome y PostgreSQL y Apache, y no son parte del sistema base, y probablemente nunca lo será, porque no son necesarios para que el sistema y desplegados, no se puede utilizar en muchos sistemas, no es necesario ese tipo de integración de cerca ... por muchas razones.
Es importante destacar que este "sistema base" idea, ya que es, creo, uno de los indicios más visibles de la diferencia en las metodologías de desarrollo entre Linux y BSD. Un distribuidor de Linux puede juntar las piezas y comprobar que se ajustan antes de soltarla. Pueden incluso tener algún tipo de personalización en algunos de los paquetes. Pero es bastante diferente del tipo intenso de integración realizado por BSD. En particular, en que muchos de los componentes del sistema de base no vienen de "otro lugar" en el primer lugar, que han vivido toda su vida como parte del sistema.
Algunas distribuciones de Linux (Debian y Gentoo, por lo que entiendo, son particularmente prominentes miembros de este grupo) son mucho más similares a esta base / puertos división que otros. Ellos mantienen una especie de línea divisoria entre lo que es necesario para que el sistema en funcionamiento, y todos los otros paquetes que desee instalar en el sistema. Lo que lo distingue de la base del sistema BSD es que la mayoría de los paquetes todavía se mantienen en otros lugares, y sólo "recogidos" en el Linux dist. No hay "Gentoo tftp", por ejemplo, es un paquete de otro lugar. Mientras que muchos paquetes de BSD son de otro lugar, nunca la mayor parte del "sistema base", provino de algún mantenedor otros, sino que siempre ha sido BSD.
La base del sistema es a veces etiquetados como "minimalista" o "clara y directa" o cosas así, con la implicación de que se trata de mantener la forma en que es un deseo de tener lo más pequeño o estrecho como sea posible. Pero que en realidad no es el caso, seguro, queremos que sea todas esas cosas, pero se hace la forma en que se debe a que es realmente la intención de ser lo que se llama, la base de un sistema. Nunca en mi vida he implementado un sistema BSD correr sólo lo que está en la base, y probablemente nunca lo hará. Yo no conozco a nadie que lo ha hecho. La base sólo tiene que proporcionar las herramientas para que el sistema en funcionamiento, y le permiten actualizar e instalar otros paquetes. Luego de instalar lo que usted necesita, para la función específica de este sistema está destinado.
Me han dicho que lo anterior es más cierto que en FreeBSD Net o abierto, los cuales en muchos aspectos, tienen un criterio mucho más amplio para determinar qué incluir en el sistema base. Como siempre, usted debe consultar los manuales de los sistemas individuales para determinar exactamente dónde va.
El sistema de puertos
Entonces, ahí está la segunda categoría, aquellos programas que son paquetes adicionales. En el mundo BSD, esto se llama el "sistema portuario". Ese nombre es elegido por una razón específica.
Tradicionalmente, cuando se quiere ejecutar un paquete en su sistema, lo primero que tenía que hacer era compilarlo. Y, a menudo antes de que pudiera compilar, usted tendría que jugar con él. Su sistema se requieren diferentes archivos de cabecera. A veces, las constantes de manifiesto sería diferente. A veces, incluso tendríamos que reescribir partes de ella a partir de cero, debido a la suposición básica de que no poseía en su sistema.
O, en otras palabras, usted tendría que "puerto" para su sistema operativo, y / o de su sistema específico. La intención básica del sistema de puertos es hacer todo lo que "portar" cosas para ti. Que también automatiza la construcción e instalación, y ofrece servicios de embalaje (para cosas como 'desinstalar') no está tan bien reflejada en el nombre.
Sin embargo, como con muchas cosas, que creció más allá de su nombre en la bestia que es hoy. La actual colección de ports de FreeBSD cuenta con cerca de 10.000 paquetes en el mismo (este número, por supuesto, ser obsoletos rápidamente, pero esa es la naturaleza del desarrollo). La característica más obvia de los puertos es que construye cosas de la fuente de todo el tiempo, en lugar de instalar los binarios precompilados. Esto, al parecer, es otra de las diferencias evidentes que la gente viaje cuando se intenta mirar a BSD desde una perspectiva de Linux. Que se construye a partir de la fuente es sólo un efecto secundario, no es el propósito principal o la diferencia. Los paquetes binarios están disponibles, de hecho, los paquetes binarios se construyen a partir del árbol de ports!
Ahora, es cierto que la mayoría de los usuarios de Linux de instalar paquetes binarios, y la mayoría de los usuarios de BSD instalar mediante la construcción de la fuente. En parte, eso es resultado de las herramientas, el sistema de puertos está diseñado alrededor del concepto de construcción de la fuente, con la capacidad de fabricar e instalar los paquetes binarios siendo una especie de idea de último momento, mientras embalaje Linux como RPM y dpkg y como están diseñados alrededor de la concepto de la instalación de un paquete binario, con la construcción de la fuente como una ocurrencia tardía. Algo de esto es histórico, el embalaje binaria históricamente no es un tema predominante en los sistemas Unix, como he mencionado antes. Por lo demás, el embalaje en sí es algo más reciente. Tradicionalmente, usted tratar de desinstalar manualmente y tal.
Gentoo es una distribución Linux ganando en importancia en estos días. Uno de sus puntos de venta es su gran porte del sistema, que a menudo se considera muy similar a los puertos de BSD. Tal vez lo más visible, en el que se compila desde las fuentes. Que evite una gran parte del problema de los paquetes binarios. Nunca he utilizado yo mismo, pero las impresiones que he recibido de la información que he visto en ella, y la gente que conozco que lo han usado, es que ha tomado algunas buenas ideas de todos, y aglomeración juntos. Será muy interesante ver cómo progresa y madura con los años próximos. Todavía es mucho más que Linux BSD, pero bien podría ser el más cercano al estilo BSD de las principales distribuciones de Linux.
Ahora, hay ventajas para binarios precompilados, sobre todo el tiempo (como en mucho menos), y por lo general va a tomar mucho menos espacio para instalar un paquete pre-compilado, de lo que para compilar el paquete. También hay ventajas para la construcción de la fuente, como evitar todo tipo de fealdad de la biblioteca de versiones (mi queja personal con paquetes binarios). Puede instalar paquetes binarios en Linux o BSD, se puede construir desde el código fuente en Linux o BSD. Sin embargo, los usuarios parecen estar sesgados de manera diferente, porque los sistemas tienen un sesgo diferente, ya que los usuarios tienen un sesgo diferente ... todo encaja.
Creo que lo importante aquí es darse cuenta de que la diferencia entre los puertos y las RPM no es sólo que se compilan los puertos y RPM es sólo instalar. Los puertos están diseñados para cubrir toda la gama de partes y piezas de la instalación de material, la codificación y el seguimiento y la instalación de las dependencias, empaquetar, instalar y desinstalar, los cambios locales necesarios para construir en su sistema, ajustes de configuración en tiempo de compilación ... todas esas cosas. Un RPM es un paquete binario. Si desea instalar automáticamente las dependencias, usted tiene que tener una herramienta de alto nivel como urpmi o apt-get para hacerlo. Y, ya que es binario, tienen que lidiar con los conflictos de versiones de la biblioteca, o no opciones de compilación, o cualquiera de las otras limitaciones que incurra por no sobre la base de su propio sistema.
Y, además, los puertos, como el resto de los sistemas BSD, están centralizados. El "árbol de ports" es en realidad un gran árbol de directorios con un montón de directorios por categorías, cada una con un Makefile con algunas definiciones de las variables, un archivo de suma de verificación, una lista de empaque, y varias cosas posibles. Cada uno de esos directorios representa un solo programa, el cual es descrito por los archivos presentes. Un montón de magia negro que sucede detrás de las escenas para que cuando ejecuto make, busca y descarga el archivo de distribución de donde es, hace que cualquier cambio o los parches necesarios, se encuentra de forma recursiva e instala todas las dependencias, las llamadas de configuración de GNU o imake o lo que sea los programas de preparación son necesarios con las opciones correctas, se inicia la compilación con las opciones correctas, etc
Sin embargo, todos los archivos de ese gran árbol de directorios se mantienen por el proyecto FreeBSD. Cuando alguien escribió KDE, por ejemplo, no por arte de magia aparecen en los árboles de los puertos de todo el mundo. Alguien tenía que escribir todo lo necesario "pegamento" para construir un puerto por él, y luego confirme los archivos en el repositorio CVS de FreeBSD por lo que sería en la colección de ports. Así que de nuevo, hay un cierto nivel de garantía de que funciona con otras cosas en la colección de ports. Las dependencias que tiene que estar ahí, porque no se puede declarar una dependencia a algo que no es en los puertos.
Las cosas se rompen, por supuesto. Tal vez una dependencia tendrá su sede principal desaparecen, así que nadie puede descargar el archivo de origen y comenzar a instalarlo. Tal vez una nueva versión de algún programa de tercero se romperá un programa, que mantendrá otras cosas que dependen de él de trabajar. Así que por supuesto no resuelve todos los problemas. Sin embargo, la incidencia de "Yo quiero una, lo que requiere B, que no puedo encontrar" es mucho menos de lo que es con esa esencia, los sistemas descentralizados, como los RPM de llegar a ser.
Para obtener información más detallada (como siempre), vea la sección del manual sobre los puertos .
Lo liberan!
Ahora tenemos una comprensión práctica de la dicotomía entre el "sistema base" y el "árbol de ports, que me parece realmente una gran cantidad de viajes de los usuarios de Linux para arriba. Vamos a hablar un poco sobre las emisiones y mejora .
Las actualizaciones del sistema:
La construcción del mundo en menos de 7 días
Como resultado del hecho de que el sistema de base de BSD se desarrolló como una sola unidad, usted puede conseguir fácilmente el código fuente completo para el sistema base completo. Y por la forma en que está diseñado, puede ejecutar un único comando en el nivel superior para compilar todo. Para la mayoría de nosotros, esa es la forma normal de actualización, se actualiza el árbol de fuentes a las últimas absoluta (con un par de horas, por supuesto) los cambios realizados por cualquier persona, compilarlo, instalar los nuevos binarios, y ya está. Miller tiempo.
Por supuesto, no necesariamente quieren lo último. Se pudiera tomar las fuentes de la semana pasada, por ejemplo. Y, normalmente, lo hace todo el proceso de reconstrucción en cuatro pasos. Se empieza con una buildworld hacer que compila todos los programas de usuario, entonces buildkernel hacer que compila el núcleo. A continuación, tomar una respiración profunda y hacer installkernel para instalar el nuevo kernel, y hacer installworld para instalar el nuevo entorno de usuario. Cada paso está automatizado por un objetivo en el Makefile.
Por supuesto, me voy a toneladas de detalle. Cosas como la que describe la configuración del núcleo, la fusión de los archivos de configuración del sistema, incluye la limpieza de ... todos los detalles arenosos. Si quieres leer sobre eso, comprobar el manual de FreeBSD , en particular las secciones relativas a la actualización y la construcción y configuración del kernel , o las diversas formas otras de la documentación disponible. Pero esa clase de cosas se vuelven una segunda naturaleza después de hacer un par de veces. En realidad, el proceso de actualización de su sistema se reduce hasta los cuatro comandos. Me resulta mucho más fácil que tener que resolver las dependencias entre versiones y cambio de la biblioteca y como a través de un trillón de paquetes binarios.
Esta información se basa principalmente en FreeBSD. NetBSD utiliza un modelo diferente de hacer las compilaciones del sistema. OpenBSD tiende a ser mucho más a favor de reinstalaciones, por lo menos para los cambios de versión mayor.
Software Addon
Bueno, seguro que fue fácil. Pero, ¿qué pasa con todos los paquetes de complemento? ¿Cómo podemos manejar eso? Vamos a hablar de cómo instalar y actualizar los puertos .
Ports:
¿Si se construyen dos puertos (ports), es que un par-a-los muelles?
Otros-en paquetes que ha instalado tendrá que ser actualizado de la misma manera que los instaló originalmente, mediante la instalación de un paquete de la versión más reciente, o la construcción de un puerto versión más reciente. El árbol de ports es en sí mismo también se mantiene en el CVS al igual que el árbol de código fuente, lo que se puede actualizar a través de CVS o CVSup al igual que el árbol de código fuente. También, busque en el portupgrade de utilidad, que es un conjunto de scripts escritos en Ruby para que sea más fácil de actualizar los puertos ya está instalado.
El árbol de ports es básicamente un enorme esqueleto. Cada paquete individual tiene su propio directorio, que contiene una serie de archivos. Cada uno tiene un Makefile, que define algunas variables relacionadas con ese paquete, al igual que en el sitio principal para la distribución, los números de versión, las instrucciones especiales para autoconf, y una lista de otros paquetes que esto depende de (Mozilla, por ejemplo, requiere la X bibliotecas, entre un millón de cosas de otro tipo). Tendrá unos pocos archivos que contienen cosas como una descripción de un párrafo del paquete, una lista de empaque para los archivos que se va a instalar, y así sucesivamente. Y puede incluir los parches que pueden ser necesarios para el software para compilar o ejecutar. Esa es la "portabilidad" del árbol de ports, que la transferencia ya está hecho.
Hay todo tipo de magia dentro de una gigantesca tela de Makefiles muy complejo. Afortunadamente, usted no necesita saber nada de eso. Todo lo que necesitas saber es que si ejecuto make, obtendrá automáticamente la fuente de todo lo que el sitio principal para que el paquete es, automáticamente, el parche, la configuran automáticamente con lo que la magia es necesario, y automáticamente se compila. Y si necesita de otros paquetes, que automáticamente comprueba si están instalados, y si no lo son, automáticamente se recurse abajo y compilar e instalar esos, también. Luego, cuando se ejecuta make install, que lo instalará automáticamente, y automáticamente lo registra como un paquete para que pueda actualizar o desinstalar paquetes con herramientas más tarde.
Es diabólicamente complejo en detalle, pero muy sencillo de usar.
O bien, puede utilizar los paquetes binarios. Aquí, todo va a utilizar el comando pkg_add. Y si usted lo usa con el modificador-r, automáticamente se intentara buscar el paquete solicitado y sus dependencias de las páginas web de FreeBSD.
Mucha más información sobre el proceso completo está disponible, como siempre, en el manual, en concreto, los puertos y los paquetes de capítulo .
Filosofía:
General
Ah, ahora esta es la parte que me gusta. Un montón de generalidades crecientes, sin un solo hecho difícil a la vista. Ahorra la molestia de tener que hacer la investigación. 8-)
Lo que voy a discutir aquí es algunas de las diferencias filosóficas reales e imaginarios que a la vez causa y son causadas por algunas de las diferencias técnicas y de organización que hemos discutido. Como la mayoría de tales discusiones, hay poco que es difícil y rápida aquí, hay muchas coincidencias en las actitudes de las personas en los diversos campos. Y ciertamente hay un montón de flak totalmente merecido por ambas partes a adoptar, así como antibalas inmerecido que han sido obligados a hacerlo. Sin embargo, creo que es importante examinar algunas de estas divisiones, sin tratar de suponer que uno es "correcta" y la otra es "incorrecto".
Se dan cuenta, debo destacar, que una gran cantidad de esto es muy general. Prácticamente todos los puntos está plagado de excepciones. Y los dos sistemas a menudo no "seguir las reglas", o no cumplen con sus propias expectativas. Es más una cuestión de inclinación de la aplicación sin excepciones. Sólo estoy diciendo esto ahora, así que no tiene que mantener la calificación y recalificación cada declaración que hago, hasta que sea imposible de leer.
Caos vs Orden
Una generalidad común es que la metodología de Linux es la viva encarnación del caos, mientras que la metodología de BSD es mucho más acerca del control. En gran medida, es cierto. Linux nació de un fondo de hacking en el tiempo libre, mientras que BSD surgió de una experiencia en ingeniería controlada. Por supuesto, hay un montón de caldereros fin de semana la escritura de código BSD, y un montón de tiempo completo, programadores profesionales que elimina toda en varias partes de Linux. Pero la sensación de los sistemas todavía no refleja ese tipo de cisma.
Ya hemos discutido la metodología de la construcción; BSD construye un sistema central que es uniforme, mientras que las distribuciones de Linux se pre-existentes y piezas más o menos los junta atropelladamente. Naturalmente, el método de BSD es mucho más susceptible de mantener las cosas ordenadas, mientras que el método de Linux requiere prácticamente un caos total. Eso no quiere decir que el caos es intrínsecamente malo, o el fin intrínsecamente bueno. Son simplemente diferentes entornos.
Linux también en general, persecución de nuevas versiones de otros programas mucho más estrecha, adoptando en particular los cambios más importantes, como Apache 2 mucho antes de BSD se mueve de esa manera. Ahora, la separación estricta de la "base" vs "puertos" de BSD, así como la estructura del árbol de ports sí mismo, que sea más fácil tener varias versiones paralelas de los paquetes de BSD. A veces, es aún posible y fácil de tener varias versiones instaladas al mismo tiempo. Linux, por no tener ese tipo de separación, hace que sea muy difícil tener versiones en paralelo, y en su lugar casi requiere un solo "bendijo" uno.
Y la primacía de la fuente de la compilación de paquetes también hace que sea más fácil de manejar múltiples versiones. Por ejemplo, PHP debe ser compilado de forma diferente dependiendo de si se está utilizando Apache 1.3 o Apache 2. Con los paquetes de código como los puertos, que puede definir una variable ambiental cuando compilar e instalar PHP para decirle si va a utilizar Apache 1.3 o Apache 2. Con los paquetes binarios, que tendría que tener dos paquetes separados disponible, lo que dará lugar a confusión, tarde o temprano.
Derecho vs incorrecto
La diferencia también se puede ver en la manera de integrar el código del núcleo. BSD tiende a arrojar siempre lejos de las soluciones de hacker cuando no hay siquiera un indicio de una solución adecuada en las alas. La teoría es que es mucho más fácil que esperar a la respuesta limpia, que para integrar la respuesta sucia ahora, por varias razones. Por un lado, si se integra la respuesta sucia, que reduce el incentivo para aplicar una mejor. Por otra parte, una vez que ensuciar la arquitectura para integrar algo que nunca se limpia de nuevo. Tú lo sabes tan bien como yo. Oh, claro, te dicen que es temporal. Pero usted sabe que no hay nada tan permanente como temporal para salir del paso. Y que las cosas crezcan. La única manera de evitar dar una milla es negarse a dar la primera pulgada. Es como los impuestos, ¿cuándo fue la última vez que vio un impuesto temporal que nunca se fue?
También lo vemos en lo que hay. Tradicionalmente (aunque no universalmente), Linux integra soporte para una pieza de hardware antes de BSD no. Sin embargo, cuando se integra BSD, funciona. Es sólido. Es estable. Controladores de Linux tienden a tener una variación mucho más, porque van a ser llevados en las primeras. En muchos sentidos, esto refleja el caso de add-on más arriba, pero a la inversa. BSD tiene un sistema de base estrictamente controlada, y puede ser muy libre con la creación de software adicional, ya que todo es añadido por el usuario de forma independiente. Linux tiene un acoplamiento muy suelta y fluida entre el kernel y utilidades, sino el espacio de usuario como un todo, por no tener una base / separación complemento, requiere mucho más trabajo para mantener constante, lo que supone una exigencia mucho mayor para una central de "bendición" de las diferentes versiones de los paquetes. El amplio uso de binarios, en lugar de distribución de código fuente sólo tiene que mucho más.
Audiencia
Bueno, ya hemos cubierto bastante bien público. Linux, con su fondo retoques caóticos, naturalmente apela a una personalidad diferente, en general, de BSD con su formación académica y rigurosa. Yo, personalmente, creo que es retenido Linux en algunos aspectos que son cada vez más evidentes últimamente. El caos al azar sin duda tiene sus ventajas, pero no sin sus desventajas.
Consecuencias de Diseño
La metodología poco a poco el montaje de Linux hace que sea fácil (en teoría) para actualizar sólo una sola pieza. En BSD, es fácil de actualizar las piezas individuales que son "add-on" de los puertos, pero las piezas que se integran en el sistema de base no puede ser fácilmente mal estado de manera independiente.
OpenSSL, por ejemplo, se importa y se mantienen en el sistema base, pero no sólo se puede actualizar por sí mismo, tengo que actualizar el sistema base completo. Y que incluye el núcleo, así como ls y gzip y gcc y menos y ssh y Sendmail y BIND. (Por supuesto, siempre puedes instalar diferentes versiones de sendmail y BIND, o Postfix y djbdns, a través de los puertos, y sólo tiene que ejecutar la versión diferente, en lugar de la base de una, sino que sólo va a sentarse a comer espacio en disco, que es barato).
En teoría, eso es un problema. En la práctica, he encontrado que por lo general es más fácil de todos modos. No puedo contar el número de veces que me he encerrado con una caja de Linux a distancia mediante la actualización de OpenSSL, a continuación, tratando de actualizar o reiniciar ssh y tener que dejar porque está buscando una versión diferente de OpenSSL. Con el sistema integrado, que no es un problema, ya que automáticamente será sincronizado. Y con la construcción de la fuente de ellos, automáticamente será sincronizado de todos modos, incluso si no se integraron en conjunto en el sistema de base.
Como resultado de las situaciones de estos y otros tipos, no es tan fácil de mantener los sistemas Linux completamente "up-to-date". Los lanzamientos individuales de una distribución son mucho más independientes el uno del otro, por lo que es más difícil de convertir su sistema de RedHat 7.3 en un sistema RedHat 8. Los nuevos paquetes de 7,3 se están realizando y actualizada por una cierta cantidad de tiempo, ya menudo realmente nunca las nuevas versiones de paquetes con los que hacer in Y si usted trata de utilizar los paquetes de una versión distinta de su distribución, o desde otra distribución, que a menudo ejecutar en las dependencias faltantes y los problemas con diferentes versiones de otros programas. Y tan difícil como es mantener un sistema de puesta al día, es aún más difícil para poner al día después de un período de abandono.
Por otro lado, he sistemas BSD que he instalado en 1997, lo que siempre se han mantenido (y siguen siendo hoy en día) con el último núcleo y la última versión de Apache y el último Mozilla y las últimas cosas. Con un sistema Linux, sin embargo, tienden a encontrar a ti mismo tratando de mantener un puñado de cosas obvias actualizado, mientras que otros consiguen cada vez más atrás, hasta que finalmente acaba de volver a instalar la última versión para ponerla al día. Las metodologías de apelar a tipos muy diferentes de los administradores.
Mitos sobre BSD
Hemos pasado mucho tiempo hasta el momento de hablar sobre las diferencias entre Linux y BSD. Hemos dedicado mucho tiempo a hablar sobre cómo funciona el BSD. Y ahora que hemos cubierto una especie de lo que tienen BSD "es". Por lo tanto, vamos a hacer un rápido viaje a lo que BSD no es, y disipar algunos mitos .
General
Hay todo tipo de mitos y de las objeciones y el "conocimiento común" y la "sabiduría convencional" y flotantes, alrededor de BSD. Siempre estoy un poco sorprendido por lo rápido que algunas personas son Linux para adherirse a tales simplificaciones excesivas y las declaraciones de muertos hace mucho tiempo acerca de los BSD, sobre todo porque entonces tanto esfuerzo gritos de la gente haciendo lo mismo con respecto a Linux. Oh, bueno. Vamos a destrozar algunos.
Hardware
"BSD no es compatible con hardware común".
¿Tiene el soporte de hardware de Linux que BSD no? Probablemente. ¿Tiene importancia? Sólo si tiene el hardware.
Voy a apostar Windows es compatible con hardware de Linux no lo hace. Por lo demás, MacOS probablemente compatible con el hardware que ninguno de los demás lo hacen. BSD compatible con hardware más comunes que se metía en un servidor, el hardware más comunes que se metía en una estación de trabajo, el hardware más comunes que se metía en un escritorio ... Hay deficiencias, pero las diferencias cambian de versión a versión, al igual que cualquier otro sistema.
Apoyo a la tarjeta de vídeo, por ejemplo, casi nunca se afirmó en la documentación de BSD, mientras que las conversaciones documentación de Linux mucho en ello. Esto parece extraño, hasta que te das cuenta de que en la visión del mundo BSD, el sistema operativo no está apoyando ninguna de esas tarjetas de vídeo, X, que es un paquete independiente. Así que usted puede utilizar cualquier tarjeta de vídeo bajo BSD que se puede en Linux, ya que ni el kernel BSD, ni el kernel de Linux es el apoyo a la tarjeta de vídeo. Ahora, eso no es estrictamente cierto, sobre todo en algunos de los tramos más esotéricos de 3D y el DRI, que requieren vínculos de hardware más directa y arranque en el propio núcleo. Por supuesto, no se sigue que, por lo que ni siquiera saben cuál es el estado actual del mundo está en FreeBSD, por no hablar de Linux. Tal vez BSD no tiene el apoyo a la par con Linux en eso. Tal vez lo hace. No lo sé, y lo más probable es que el cambio entre el momento en que escribo esto y el tiempo de leerlo.
Pero la mayoría de hardware es sencilla. Más común de IDE y SCSI controladores de almacenamiento masivo de funcionar bien. Incluso la mayoría de los controladores RAID son compatibles hasta cierto punto. La mayoría de las tarjetas de red, cableado y las tarjetas inalámbricas, la mayoría de sonido, algunas tarjetas criptográficas de ayuda ...
Pero es simple. No me importa lo que el hardware del sistema operativo compatible, siempre y cuando se apoya lo que tiene. Lea la lista de soporte de hardware y / o utilice el arranque hacia arriba. Puede que se sorprenda.
En caso de duda, consultar las listas. Listas de soporte de hardware están disponibles por la liberación, como las listas de 5.2-RELEASE y 4.9-RELEASE de FreeBSD.
Disponibilidad del programa
"Sin embargo, Linux tiene más programas de BSD!"
¿Cómo lo sabes? La mayoría de estos "programas" que está tan caliente sobre cosas que son de código abierto o fuente disponible, de todos modos. Si está escrito bastante portable, el 95% o más de los que se compila el derecho de descuento en cualquier vagamente POSIX del sistema. Heck, basta con ver en el árbol de ports, hay más de 10.000 programas y paquetes de allí.
Por supuesto, hay una gran cantidad de software por ahí que no se compilará en otra cosa que Linux. A veces, eso es porque realmente no requiere instalaciones de Linux que sólo tiene o hace cosas que son importantes sólo en Linux. A veces, eso significa que tienes que coger un 2x4 y ir a buscar al autor, ya que han puesto en algo imcompatible gratuitamente a través de la malicia o la pereza. Hay personas que hacen lo mismo con BSD, o con HP / UX, por supuesto, pero el rápido crecimiento de la comunidad Linux, combinado con el número de personas que han escrito los programas con menos experiencia en ingeniería de software tradicional, hacen que sea mucho más visible que .
Por supuesto, hay algunas cosas que no se cruza a la generación, en particular los que se pegan los dedos de profundidad en los detalles de implementación. Algunos sólo necesitan un poco de trabajo al puerto, un trabajo importante, y algunos ni siquiera tienen ningún significado en otros sistemas (¿Cuándo alguien alguna vez el puerto Defrag Microsoft a Linux, f'rinstance?) Pero si es útil, es probable que sea portado , o hay algún equivalente, o de contrapartida.
Y luego hay cosas que no son fuente disponible, sino que se distribuye sólo en formato binario. Navegadores de Netscape, Opera, algunos programas de Office, RealPlayer, etc Ahora, la mayoría de los que se enumeran tienen versiones de BSD disponibles también, pero aún así, FreeBSD, en particular, y (creo) todos los de BSD tiene una capa de emulación Linux que ofrece compatibilidad binaria . No siempre va a hacer el truco, sobre todo (como antes), cuando algo está alrededor de arranque en profundidad la aplicación específica de los detalles. Pero funciona con sorprendente frecuencia. Binarios de Linux sólo puede ser recogido y se ejecuta en un sistema BSD (por lo menos entre los sistemas i386 y, a veces en otras arquitecturas). Más detalles están fuera de alcance, pero si quieres más información, puede leer sobre él en el manual .
Como regla general: Mira la colección de ports. Es probable que usted encontrará lo que usted está buscando. Y si no, es probable que haya algo entre los 10.000 otras opciones que se ajusten a la ley.
Popularidad
"Sin embargo, Linux es más popular."
¿Y qué? Windows es aún más popular. Ir usarlo.
Por lo general, el argumento de la popularidad que realmente significa cosas como: "Es más fácil encontrar apoyo", o lazos en el tema del programa, la disponibilidad más arriba. Pero hay un montón de lugares y personas que ofrecen soporte comercial para BSD, y la comunidad en las listas de correo y grupos de noticias es grande y bien informado. Así como los usuarios de Linux que el argumento de "¿Quién tiene que pagar por el soporte? Mira lo que podemos obtener de forma gratuita", lo mismo se aplica a este lado de la valla.
Usabilidad
"BSD es difícil de usar, más avanzado, más complicado, menos fácil de usar."
Bueno, ¿cómo puedo contrarrestar eso? ¿Qué es más difícil? Es diferente de Linux, claro, pero ¿y qué? De muchas maneras, me parece mucho más lógico y fácil de entender. Ahí es donde todo el esfuerzo y el esnobismo de la consistencia y la limpieza vale la pena. Linux es mucho más "diferente" y "difícil de usar" y "más avanzados" y "más complicado" y "menos fácil" de Windows, también, recordar. Uno piensa que no es porque se ve a través de que a la mayor potencia y flexibilidad que viene con aprender un poco sobre ello. BSD no es más difícil, sólo requiere pensar un poco diferente.
BSD siempre ha considerado que es más importante para que el usuario avanzado algo más, que para que el principiante hacer más. La teoría, por supuesto, es que los novatos se convierten en usuarios avanzados con gran rapidez (un año o dos), mientras que los usuarios avanzados de utilizar el sistema durante mucho tiempo (décadas). Así que es probable que haya menos "suaves" toman de las manos interfaces integradas en el sistema. Por otro lado, los paquetes de complemento llevar a los suyos. Si KDE tiene algún tipo de usuario-ayuda o tutorial o lo que sea construido en él (no sé, yo no lo uso), que lo tendrá en BSD también, ya que KDE es KDE donde quiera que lo use. Por lo que rara vez como un gran problema como parece.
Elitismo
"Los usuarios de BSD son un grupo de élite egoísta snobs grosero."
Así es. Y orgulloso de ello. :-)
No se puede caracterizar a una comunidad entera en una frase. Hay un montón de gente en la comunidad FreeBSD que no quieren oír hablar de su problema a menos que haya trazado el código fuente del mismo y encontrar exactamente dónde está el problema (y es mejor que sea un problema real, no un error del usuario estúpido!) . También hay un montón de gente en la comunidad FreeBSD que va a saltar de su piel para ayudarle en el problema más simple.
El "tipo RTFM' respuestas suceder, por supuesto. Sin embargo, de que se produzcan en la comunidad Linux, también. Nadie es demasiado aficionado a alguien haciendo una pregunta que es el punto # 4 en las preguntas frecuentes que todo el mundo supone que ha leído. La documentación de FreeBSD incluye una gran cantidad de temas, y en detalle bastante completa. Utilizarlo. Y porque el sistema está desarrollado a nivel central, una gran parte de la documentación también se encuentra desarrollado a nivel central y, allí mismo en el sitio web de FreeBSD .
Nadie quiere tratar de responder a una pregunta en la pregunta no está dando ninguna información útil, ya sea. Y cuando usted ha contestado a la misma pregunta que ya está en la documentación de un centenar de veces, y pidió la misma información adicional acerca de un problema cien veces, usted tiende a tener más cortante acerca de sus respuestas el ciento uno. Eso no significa que sea una buena cosa, pero todos los hoteles de la comunidad técnica con la misma cosa.
Es posible que el BSD, debido a sus antecedentes más técnicos y de ingeniería, termina con el elitismo más prevalente que en otras comunidades. No estoy seguro de lo que realmente es, yo creo que es sólo más visibles. Una de las consecuencias de un desarrollo más centralizado es que los usuarios finales y los administradores de sistemas profesionales y programadores profesionales y la mayoría de los desarrolladores del sistema, todos comparten el mismo "espacio". Con Linux, tienes la lista de correo linux-kernel , que es prácticamente todos los desarrolladores. Y sólo los desarrolladores del kernel y mantenedores. La marca y el cron y localizar a los desarrolladores y mantenedores de alquitrán y tienen sus propias listas a otra parte. No están muy bien separadas áreas de recolección, como las listas de correo, grupos de noticias y foros de la web, para administradores, para los programadores, y para los usuarios finales.
En contraste, la mayoría de lo relacionado con FreeBSD pasa ya sea en el freebsd-* @ listas freebsd.org de correo, o uno de los grupos de noticias de unos pocos. Eso es todo, desde los usuarios hacer preguntas como "¿Cómo puedo obtener ppp de trabajo?", A los desarrolladores de decir: "Quiero agregar un campo a device_t". Y no es raro que los usuarios sin experiencia utilizar la lista de distribución errónea de las preguntas. Claro, usted quiere empujar suavemente en la dirección correcta, pero las frustraciones se acumulan. Y algunos incluso tomar "Esta es una lista de desarrollo, que quiere hacer esa pregunta en [email protected]" como una declaración de "elitista" o inútil.
Por lo tanto, son usuarios de BSD elitista? Bueno, tal vez. Tal vez era más frecuente hace años, la reputación como la que se rezagan en mucho, mucho tiempo después de las razones por las existentes ya son historia. Personalmente, creo que el elitismo BSD es mucho más visible debido a la comunidad mucho más estricta. Trate de conseguir un flujo de gente que pide la lista linux-kernel cómo grabar un CD-R o activar una función en Apache, ver cuánto tiempo tarda hasta que haya "elitismo inútil" cargos por venir.
Conclusión
¿Por qué usan BSD?
Simplemente funciona. Al instalar el sistema, un grupo conjunto de piezas están ahí. Período. Cuando pasan por el proceso de actualización, que funciona. Al instalar un paquete de complemento, funciona.
Es compatible con prácticamente cada pieza de hardware que he lanzado a él en casi una década de uso. Y que el apoyo Simplemente funciona, no tiene escamas o fallar a partir de una versión a otra.
Yo puedo elegir si seguir con versiones comerciales de probada eficacia, para seguir la rama-STABLE, realizar el seguimiento del estudio CURRENT-rama ... Sin embargo, cerca del borde que quiero vivir. E incluso el borde bleedingest por lo general funciona bien. Puedo tomar un sistema que no ha sido tocado en 3 años, y lo pongo al día con el mínimo dolor.
Cuando surge un problema, ya sea de seguridad o de estabilidad o rendimiento, o incluso sólo la estética, que se fija. Y debido a la metodología de desarrollo, que puede obtener las correcciones más tarde esa misma noche. Todo el tiempo. Cuando una nueva característica se añade, lo puedo tomar en este momento, no esperar una semana o un mes o mes 6 hasta la próxima versión. Puedo ver, zumbando en mi correo electrónico, todos los cambios que ha hecho. O bien, cuando algo se rompe, lo puedo arreglar yo mismo, y ser capaz de enviar la corrección de la derecha de a alguien que puede conseguir lo incorporó al sistema de derecho de distancia. Yo lo he hecho antes, voy a hacerlo de nuevo, y también lo han hecho miles de otras personas.
Está diseñado para todos encajan. No sólo munged después del hecho-para ir juntos bien, pero diseñado desde cero para ser un sistema único y coherente. Y cuando algo no encaja, que es un error que se fije, no sólo "parte del juego".
Ha tenido caprichos. Ha tenido caprichos. Ha tenido a cabo y fuera de errores. Ha tenido extrañeza. Ha tenido un comportamiento inexplicable. Me ha dado engañosos mensajes de error. A veces, con entrada y salida rompe cosas que funcionó ayer. Y todos aquellos que sucederá en el futuro. Sin embargo, cada vez, alguien va a la derecha por delante y las comunicaciones, y se analiza, y la fija. He leído las listas de correo, y veo estas cosas pasan. Veo el problema planteado, veo a la gente que conocen el área discutirlo, veo las soluciones propuestas y se desecha y probados y convenidos, y los veo comprometidos en el repositorio principal. Y por lo general en el momento en que veo que sucede, ya puedo poner mis manos sobre él.
Es sólo un nivel de coherencia y transparencia y usabilidad años luz más allá de cualquier otra cosa que he visto. Su camino hacia el desarrollo está dirigido a méritos técnicos y las soluciones correctas, no sólo cuenta con atractivos y hacks viable. Y creo que esa es la única manera de ser sostenible a largo plazo.
¿Por qué debería correr BSD?
Bueno, yo no lo sé. Hace lo que tiene ahora satisfacer sus necesidades? Entonces es probable que no tenga una necesidad urgente de cambiar nada.
Hay un montón de ensayos y luchas de la existencia de por qué X funciona mejor que el Y, para cualquier valor de X e Y. No quiero escribir otro. Si y cuando usted tenga tiempo o la inclinación o los recursos para tratar de BSD, quiero que este ensayo para ayudar a entender por qué algunas de esas diferencias están ahí, y lo que es el resultado de esas diferencias.
Más información
Todos los sitios de BSD ( FreeBSD , NetBSD y OpenBSD ) tienen una amplia documentación disponible en sus sistemas. Debido a que la base del sistema está integrado, todas las cosas que tratan con él puede ser documentado con autoridad en un solo lugar. Que describen las fortalezas y debilidades de los sistemas individuales, cómo instalarlos, cómo mejorar, cómo admin ellos ... Todo lo que necesita.
En la documentación de FreeBSD en particular, el artículo sobre Qué es BSD es similar a este ensayo, en el que se describe BSD y su contexto histórico. Hay todo tipo de documentación, a partir de documentos de introducción que describe los conceptos básicos de FreeBSD y sistemas de tipo Unix, para una descripción detallada del funcionamiento interno del kernel, y todo lo demás. Desplácese por la página.
Y, por supuesto, el manual de FreeBSD , y el FAQ de FreeBSD están rellenos con la información usted ni siquiera sabía que necesitaba. No salgas de casa sin él.
El BSD también tienen listas de correo y grupos de noticias disponibles para hacer preguntas. Suelen ser muy sensible y lleno de personas que han pasado por el mismo proceso de aprendizaje que estaría pasando. Vea los sitios individuales para mayor información.
El Fin
Puede ser difícil tratar de averiguar BSD cuando estás acostumbrado a Linux, ya que las diferencias básicas que muchos pueden tropezar. A pesar de que ambos sistemas son muy similares debido a su herencia de Unix, las estrategias de desarrollo y la aplicación varían ampliamente. Espero haber ayudado a darle una mejor idea de cómo los sistemas BSD de trabajo y se ponen juntos.
Por favor, no dude en escribirme si hay algo aquí que no entiende o cree que puede mejorar, es un eterno trabajo en progreso, como todo lo demás en el mundo.
Los ordenadores son diversión. Disfrutar.
Bueno una de las razones por lo que hice este post es para que sea as comprendido BSD en taringa y para todos los usarios de Linux, y talvez incluso alcanzar a que en taringa BSD tenga su propia categoria, bueno gracias por leer y saludos!
