Mitos sobre FreeBSD. FreeBSD no soporta la virtualización

¡Buen día!

El deseo de escribir este artículo surgió después de leer el post Sobrecarga de operadores C++, porque en él no se tratan muchos temas importantes.

Lo más importante que debe recordar es que la sobrecarga de operadores es simplemente una forma más conveniente de llamar funciones, así que no se deje llevar por la sobrecarga de operadores. Sólo debe usarse cuando facilite la escritura de código. Pero no tanto como para dificultar la lectura. Después de todo, como usted sabe, el código se lee con mucha más frecuencia de lo que se escribe. Y no olvide que nunca se le permitirá sobrecargar operadores junto con tipos integrados; la posibilidad de sobrecarga solo está disponible para tipos/clases definidos por el usuario.

Sintaxis de sobrecarga

La sintaxis de sobrecarga de operadores es muy similar a definir una función llamada operador@, donde @ es el identificador del operador (por ejemplo +, -,<<, >>). Veamos un ejemplo sencillo:
clase Entero (privado: valor int; público: Entero(int i): valor(i) () const Operador entero+(const Entero& rv) const (retorno (valor + rv.valor); ) );
En este caso, el operador está enmarcado como miembro de una clase, el argumento determina el valor ubicado en el lado derecho del operador. En general, hay dos formas principales de sobrecargar operadores: funciones globales que son amigables para la clase o funciones en línea de la propia clase. Consideraremos qué método es mejor para qué operador al final del tema.

En la mayoría de los casos, los operadores (excepto los condicionales) devuelven un objeto o una referencia al tipo al que pertenecen sus argumentos (si los tipos son diferentes, entonces usted decide cómo interpretar el resultado de la evaluación del operador).

Sobrecarga de operadores unarios

Veamos ejemplos de sobrecarga de operadores unarios para la clase Integer definida anteriormente. Al mismo tiempo, definámoslas en forma de funciones amigables y consideremos los operadores de incremento y decremento:
clase Entero ( privado: valor int; público: Entero(int i): valor(i) () //unario + amigo const Integer& operador+(const Integer& i); //unario - amigo const Integer operador-(const Integer& i) ; //incremento de prefijo amigo const Integer& operador++(Integer& i); //incremento de prefijo amigo const Integer operador++(Integer& i, int); //incremento de prefijo amigo const Integer& operador--(Integer& i); yo, int); //unario plus no hace nada. const Integer& operator+(const Integer& i) ( return i.value; ) const Integer operator-(const Integer& i) ( return Integer(-i.value); ) //la versión del prefijo devuelve el valor después del incremento const Integer& operator++(Integer& i) ( i.value++; return i; ) //la versión postfix devuelve el valor antes del incremento const Integer operator++(Integer& i, int) ( Integer oldValue(i.value); i.value++; return oldValue; ) //la versión del prefijo devuelve el valor después de la disminución const Integer& operator--(Integer& i) (i.value--; return i; ) //la versión postfix devuelve el valor antes de la disminución const Integer operator--(Integer& i, int) ( Integer oldValue(i. valor); i .valor--; devolver valor antiguo;
Ahora ya sabe cómo el compilador distingue entre versiones de decremento e incremento con prefijo y posfijo. En el caso de que vea la expresión ++i, se llama al operador de función++(a). Si ve i++, entonces se llama al operador++(a, int). Es decir, se llama a la función operador ++ sobrecargada, y para esto se usa el parámetro int ficticio en la versión postfix.

Operadores binarios

Veamos la sintaxis para sobrecargar operadores binarios. Sobrecarguemos un operador que devuelve un valor l, un operador condicional y un operador que crea un nuevo valor (definámoslos globalmente):
clase Entero (privado: valor int; público: Entero(int i): valor(i) () amigo const Entero operador+(const Entero& izquierda, const Entero& derecha); amigo Entero& operador+=(Entero& izquierda, const Entero& derecha); amigo operador bool==(const Entero& izquierda, const Entero& derecha); const Entero operador+(const Entero& izquierda, const Entero& derecha) ( return Entero(valor.izquierdo + valor.derecho); ) Entero& operador+=(Entero& izquierda, const Entero& derecha) ( valor.izquierdo += valor.derecho; return izquierda; ) operador bool == (entero constante y izquierda, entero constante y derecha) (retorna valor.izquierdo == valor.derecho;)
En todos estos ejemplos, los operadores están sobrecargados para el mismo tipo; sin embargo, esto no es necesario. Puedes, por ejemplo, sobrecargar la suma de nuestro tipo Integer y Float definido por su similitud.

Argumentos y valores de retorno.

Como puede ver, los ejemplos utilizan varias maneras pasar argumentos a funciones y devolver valores de operador.
  • Si un operador no modifica el argumento, en el caso de, por ejemplo, un signo unario más, debe pasarse como referencia a una constante. En general, esto es cierto para casi todos los operadores aritméticos (suma, resta, multiplicación...)
  • El tipo de valor de retorno depende de la naturaleza del operador. Si el operador debe devolver un nuevo valor, entonces se debe crear un nuevo objeto (como en el caso del plus binario). Si desea evitar que un objeto se modifique como un valor l, debe devolverlo como una constante.
  • Los operadores de asignación deben devolver una referencia al elemento modificado. Además, si desea utilizar el operador de asignación en construcciones como (x=y).f(), donde se llama a la función f() para la variable x, después de asignarla a y, no devuelva una referencia al constante, solo devuelve una referencia.
  • Los operadores lógicos deberían devolver un int en el peor de los casos y un bool en el mejor de los casos.

Optimización del valor de retorno

Al crear nuevos objetos y devolverlos desde una función, debe utilizar una notación similar al ejemplo del operador binario más descrito anteriormente.
return Entero(valor.izquierdo + valor.derecho);
Para ser honesto, no sé qué situación es relevante para C++11; todos los argumentos adicionales son válidos para C++98.
A primera vista, esto parece similar a la sintaxis para crear un objeto temporal, es decir, no parece haber diferencia entre el código anterior y este:
Temperatura entera (valor.izquierdo + valor.derecho); temperatura de retorno;
Pero, de hecho, en este caso, se llamará al constructor en la primera línea, luego se llamará al constructor de copia, que copiará el objeto, y luego, al desenrollar la pila, se llamará al destructor. Cuando se utiliza la primera entrada, el compilador crea inicialmente el objeto en la memoria en el que se debe copiar, guardando así las llamadas al constructor y al destructor de la copia.

Operadores especiales

C++ tiene operadores que tienen una sintaxis y métodos de sobrecarga específicos. Por ejemplo, el operador de indexación. Siempre se define como miembro de una clase y, dado que el objeto indexado debe comportarse como una matriz, debe devolver una referencia.
operador de coma
Los operadores "especiales" también incluyen el operador de coma. Se llama a objetos que tienen una coma al lado (pero no se llama a listas de argumentos de funciones). No es fácil encontrar un caso de uso significativo para este operador. Habrowser AxisPod en los comentarios del artículo anterior sobre sobrecarga habló de una cosa.
Operador de desreferencia de puntero
La sobrecarga de estos operadores puede justificarse para clases de punteros inteligentes. Este operador se define necesariamente como una función de clase y se le imponen algunas restricciones: debe devolver un objeto (o una referencia) o un puntero que permita el acceso al objeto.
Operador de asignación
El operador de asignación se define necesariamente como una función de clase porque está intrínsecamente vinculado al objeto a la izquierda de "=". Definición del operador de asignación en globalmente permitiría anular el comportamiento predeterminado del operador "=". Ejemplo:
clase Entero (privado: valor int; público: Entero(int i): valor(i) () Entero& operador=(const Integer& derecha) ( //comprueba la autoasignación if (this == &right) ( return *this; ) valor = valor.correcto; devolver *esto;

Como puede ver, al inicio de la función se realiza una verificación de autoasignación. En general, en este caso la autoapropiación es inofensiva, pero la situación no siempre es tan sencilla. Por ejemplo, si el objeto es grande, puede perder mucho tiempo copiando innecesariamente o trabajando con punteros.

Operadores no sobrecargables
Algunos operadores en C++ no están sobrecargados en absoluto. Al parecer esto se hizo por motivos de seguridad.
  • Operador de selección de miembros de clase ".".
  • Operador para desreferenciar un puntero a un miembro de la clase ".*"
  • C++ no tiene el operador de exponenciación (como en Fortran) "**".
  • Está prohibido definir sus propios operadores (puede haber problemas para determinar las prioridades).
  • Las prioridades del operador no se pueden cambiar
Como ya hemos descubierto, hay dos tipos de operadores: como función de clase y como función global amigable.
Rob Murray, en su libro C++ Strategies and Tactics, define las siguientes pautas para elegir la forma del operador:

¿Porqué es eso? En primer lugar, algunos operadores inicialmente están limitados. En general, si no hay diferencia semántica en cómo se define un operador, entonces es mejor diseñarlo como una función de clase para enfatizar la conexión, además la función estará en línea. Además, a veces puede ser necesario representar el operando de la izquierda como un objeto de otra clase. Probablemente el más ejemplo brillante- anular<< и >> para flujos de E/S.

Literatura

Bruce Eckel - Filosofía C++. Introducción al estándar C++.

Etiquetas: Agregar etiquetas

  • Traducción

FreeBSD es bueno para servidores, pero no para computadoras de escritorio

FreeBSD tiene un subsistema de audio de baja latencia con todas las funciones y la mezcla del kernel permite que múltiples aplicaciones reproduzcan sonidos simultáneamente (con configuraciones de volumen independientes) sin ajustes adicionales. La configuración predeterminada incluye X.org y configuraciones de escritorio como KDE o GNOME, es tan simple como elegir un metapaquete dependiendo de cuál prefieras.

Aunque parezca demasiada complejidad, PC-BSD es un sistema de escritorio con todas las funciones construido sobre FreeBSD con un instalador fácil de usar y una opción de soporte comercial.

FreeBSD utiliza un modelo de desarrollo cerrado

FreeBSD es desarrollado por más de 400 desarrolladores en todo el mundo, todos los cuales tienen acceso completo a todo el sistema y a los datos de este sistema operativo. Los terceros también suelen arreglar parches nativos. Si desea ver la cantidad de parches que se han corregido, puede buscar "Enviado por" en los registros de confirmación.

No existen reglas estrictas y rápidas para FreeBSD. Las decisiones las toman personas dispuestas a hacer el trabajo. Si surgen disputas, las resuelve un grupo de desarrolladores elegidos cada dos años. El criterio obligatorio por el cual se seleccionan los desarrolladores es la corrección o modificación obligatoria del código del proyecto en años anteriores.

FreeBSD: solo OS X sin una interfaz GUI sofisticada

Este es el mismo mito sobre OS X que sobre FreeBSD: OS X es simplemente FreeBSD con una hermosa interfaz gráfica. Los dos sistemas operativos comparten algo de código; por ejemplo, la mayoría de las utilidades de espacio de usuario y la biblioteca OS X C se derivan de versiones de FreeBSD. Parte de este código está desarrollado en diferente tiempo y en diferentes direcciones, por ejemplo, FreeBSD 9.1 incluyó más tarde la pila y el compilador de C++ que fueron desarrollados originalmente para OS X por los empleados de Apple. También hay detalles radicalmente diferentes.

El kernel XNU utilizado en OS X incluye varios subsistemas de versiones anteriores de FreeBSD, pero en gran medida se considera una implementación independiente. Pero aún así, debido a su similitud, los productos implementados en OS X son mucho más fáciles de adaptar a FreeBSD. Por ejemplo, libdispatch y libc++ fueron escritos para OS X y se ejecutaron en FreeBSD antes que cualquier otro sistema operativo.

En FreeBSD todo debe compilarse desde el código fuente

La colección de ports de FreeBSD es una forma muy poderosa de instalar software, permitiéndole personalizar la configuración de varios programas y bibliotecas de terceros. Sin embargo, esto no es la única forma instalar software en FreeBSD. Siempre puedes instalar software de paquetes binarios. El proyecto pkgng ha agregado un nuevo formato de paquete y una herramienta de administración de paquetes, proporcionando conjunto moderno Herramientas para control binario.

Puede instalar pkgng desde ports (ports-mgmt/pkg) en versiones anteriores de FreeBSD. Está habilitado de forma predeterminada en FreeBSD 9.1 y posteriores.

FreeBSD es UNIX de los años 90 (u 80)

FreeBSD es un descendiente lineal del UNIX original a través de Berkeley Software Distribution, pero ha seguido desarrollándose por separado. En los últimos años, hemos visto que ZFS se ha vuelto significativamente más poderoso: soporte para canales de 10 GB, 40 GB y 100 GB, subsistema de audio mejorado, soporte para 802.11n y otras mejoras.

Esto no significa que FreeBSD haya abandonado sus raíces UNIX. Hay muchas razones por las que los sistemas UNIX se han vuelto populares. Incluyen un sistema gratuito que es fácil de migrar a nuevas plataformas, un conjunto de herramientas simples y un kernel que funciona bien en una variedad de plataformas. FreeBSD mantiene estas tradiciones.

Todo el buen código en FreeBSD proviene de Solaris

FreeBSD importó dos funciones de alto perfil de OpenSolaris: DTrace y ZFS. Ambos cuentan ahora con el soporte de FreeBSD. ZFS en particular es el foco de muchos desarrolladores de FreeBSD, incluidos los utilizados por iXsystems, una empresa que apoya el desarrollo de FreeNAS y vende dispositivos NAS comerciales basados ​​en FreeBSD. Los desarrolladores de FreeBSD también están trabajando estrechamente con los desarrolladores de Illumos, una de las bifurcaciones de código abierto de Solaris, para mejorar ambas características.

A pesar de los beneficios de ZFS, todavía es una parte relativamente pequeña sistema común. ZFS y DTrace representan menos del 4% del código del kernel, lo que equivale a casi el 10% del código del sistema principal. Si asumimos que sólo el 0,4% de FreeBSD es bueno, entonces el sistema no habría ganado tanta popularidad.

FreeBSD no tiene controladores

Este es un problema al que se enfrentan todos los sistemas operativos, incluso las versiones más nuevas de Windows. La mayoría de las veces a los usuarios no les importa numero total controladores sólo si los controladores ya están instalados de forma predeterminada. Hay algunas omisiones en términos de compatibilidad con controladores, pero FreeBSD admite una amplia gama tarjetas de red(incluidos los conjuntos de chips 802.11n), la mayoría de las tarjetas de sonido AMD, Intel y GPU NVIDIA.

El soporte de hardware es la parte de la implementación que requiere una mejora constante, porque no se puede simplemente decirles a los fabricantes de hardware que esperen un par de años hasta que los desarrolladores de software se pongan al día. Proporcionar soporte para nuevos dispositivos requiere tiempo de configuración, aunque algunos fabricantes proporcionan controladores ellos mismos, como Nvidia, que proporciona controladores para sus GPU e Intel, para los controladores de red más recientes. Otros proveedores brindan asistencia con el desarrollo de controladores FreeBSD, incluidos Broadcom, JMicron, HP, Mellanox, Chelsio y Solarflare. Si conoce dispositivos que no son compatibles con FreeBSD, es mejor informar al respecto a los desarrolladores y fabricantes de dispositivos. Normalmente, la mejor manera de impulsar una solución por parte de los fabricantes es decirles que sus clientes no pueden utilizar sus productos.

FreeBSD 4.x es el mejor de todos los tiempos

La versión 4.x fue la más estable y FreeBSD estaba orgulloso de haber podido implementar dicho producto. Muchos usuarios han seguido usándolo a lo largo de los años. La serie 5.x surgió durante la transición a la optimización de subprocesos múltiples. Esto implicó reemplazar un único candado alrededor del kernel con varios candados más pequeños que son compartidos por subsistemas individuales. Esto requirió mucho trabajo, lo que inevitablemente condujo a algunos errores. 5.x vino con dos implementaciones de subprocesos, lo que complicó aún más las cosas. Las dos primeras versiones de la serie 5.x fueron etiquetadas como "sólo para desarrolladores", pero la 5.2 estaba dirigida a un público más amplio y no estuvo a la altura de las expectativas de los usuarios de FreeBSD. Varios grandes usuarios decidieron no cambiar la serie 4.x.

La serie 5.x fue una lección dolorosa para el proyecto. La serie 6.x restauró la estabilidad de la versión 4.x y la serie 7.x restauró el rendimiento de un solo procesador. Durante el lanzamiento de la serie 8.x, se pudieron ver una serie de pruebas comparativas publicadas por terceros que demostraron que FreeBSD escala mejor en sistemas multiprocesador que cualquier otro sistema operativo.

Todos estos lanzamientos tuvieron cantidad considerable mejoras como un subsistema de audio mejorado, ZFS, DTrace, registro UFS y más, pero la estabilidad y el rendimiento siguieron siendo los objetivos clave del sistema FreeBSD.

Desventajas del software FreeBSD

La colección FreeBSD contiene actualmente más de 26.000 piezas de software. Es difícil comparar este número con otros repositorios porque los programas se dividen de manera diferente (por ejemplo, el puerto GCC en FreeBSD instala programas y bibliotecas que se dividen entre 6 y 10 paquetes en Debian, dependiendo de la versión de GCC), pero la mayoría de las cosas Aún lo consigues, puedes encontrarlo allí. Una de las razones por las que los usuarios eligen FreeBSD es el hecho de que el conjunto de ports proporciona una pieza de software específica y relativamente oscura que necesita, mientras que otros sistemas no.

La mayor parte del software del conjunto de ports se ejecuta de forma nativa en FreeBSD. La mayoría del software de código abierto es independiente del sistema operativo y requiere modificaciones mínimas para compilarse y ejecutarse en FreeBSD. Hay excepciones como Valgrind, que requieren una comprensión detallada del sistema. El software propietario puede ser un problema mayor. Algunos desarrolladores, como Opera, proporcionan a FreeBSD su código fuente.

El resto del software debe ejecutarse en modo de emulación. Por ejemplo, los binarios de Linux pueden ejecutarse en el nivel ABI de Linux, donde las llamadas al sistema Linux se traducen a sus equivalentes de FreeBSD. El único inconveniente es una carga ligeramente mayor de llamadas al sistema; Por lo general, es difícil medir la diferencia de rendimiento entre ejecuciones. programas linux en Linux y en FreeBSD: en algunos casos, los programas se ejecutan más rápido en FreeBSD que en Linux debido a implementaciones más eficientes de las llamadas base. Por ejemplo, una versión de Linux de un complemento Flash se puede ejecutar usando NSPluginWrapper en el nivel ABI de Linux con su propio navegador web.

Existe una solución similar para ejecutar aplicaciones de Windows.

FreeBSD no soporta la virtualización

FreeBSD 9 se ejecuta como invitado Xen (domU) tanto en x86 como en x86-64, incluido Amazon EC2. Gracias al trabajo realizado con Microsoft, NetApp y Citrix, FreeBSD puede ejecutarse en el hipervisor Hyper-V de Microsoft. FreeBSD 11 incluirá soporte Dom0 para la gestión de dominios.

FreeBSD también admite VirtualBox como invitado y anfitrión. Puede encontrar VirtualBox Guest Additions y luego el propio hipervisor en la colección de puertos. FreeBSD 10 también actúa como host del sistema operativo para el hipervisor BSD, brindando muchas opciones para ejecutar máquinas virtuales FreeBSD en FreeBSD.

Finalmente, si no necesita una virtualización completa, puede usar el subsistema de contenedor para ejecutar espacios de usuario de FreeBSD aislados (o incluso espacios de usuario de Linux usando capas ABI de Linux) en un único kernel de FreeBSD. Al contenedor incluso se le puede dar su propia pila de redes independiente, etc., y por lo tanto se puede usar una máquina para emular una flota completa de máquinas.

La licencia BSD fomenta la cooperación mutua

Siempre que los desarrolladores del código FreeBSD no presenten un reclamo de derechos de autor en su contra, podrá utilizarlo. Pero, si crees en las declaraciones de los propios desarrolladores, esto no sucederá.

Es casi seguro que algunas empresas tomarán nuestro código, lo cambiarán y nunca proporcionarán nada a cambio.

Consideremos, como ejemplo, el caso de dos importantes empresas de Internet: Google y Yahoo! Anteriormente, su infraestructura interna se basaba en un sistema operativo GPL, mientras que versiones posteriores ya utilizan FreeBSD. Dado que Google no distribuye su sistema operativo modificado, pueden almacenar, por ejemplo, GoogleFS en propiedad privada. En casos como este, cuando el software se desarrolla para uso interno, el acuerdo de licencia no exige que la empresa revele sus modificaciones a los desarrolladores de FreeBSD.

Sin embargo, existen algunos problemas con la conexión: por ejemplo, no puede utilizar una biblioteca con licencia GPL si ya está utilizando BSD.

A lo largo de los años, bastantes empresas han realizado contribuciones significativas a FreeBSD. Y esto se debe no sólo a un sentimiento de altruismo, porque apoyar cualquier proyecto que se esté desarrollando rápidamente es un placer muy caro.

Hoy runeta Muele las impresiones de y luego intentaré machacar el agua en un mortero nuevamente. alta tecnología. Sí, el progreso sociopolítico ruso es grande, lo digo sin ninguna ironía maliciosa, en parte incluso con admiración, no todo el mundo puede tomarlo así, y aun así. Es incluso difícil imaginar lo que le espera a Rusia en 2012 con tal ritmo de desarrollo de la sociedad civil.

Bueno, está bien, me distraí un poco y ahora hablamos de FreeBSD, querido.

Una vez fui un ávido fidoshnik Además, tenía (y en parte todavía tengo) manía por coleccionar libros. Juntando estos dos hechos: Érase una vez en un eco ru.unix.bsd era relevante para el tema de esta conferencia, donde estaba mi respuesta detallada que describe todos libros en ruso por FreeBSD.

Esta es una pregunta muy común entre los principiantes: ¿qué recomiendas leer para entrar de forma rápida y cómoda en el tema? Dado que hay una selección de libros en ruso, y el sistema también es relativamente popular, y esta pregunta surge constantemente, decidí terminar describiendo consistentemente todos los libros en ruso en FreeBSD que tenía en ese momento ( y tenía todos los libros publicados).

Justo ahora, han pasado más de 4 años desde entonces, y veo en las estadísticas de consultas de búsqueda que la gente sigue y va a esa descripción anterior, así que decidí actualizarla a partir de 2011.

Entonces, el tema de esta publicación: cuáles son los libros publicados en ruso en FreeBSD ahora + y mi breve descripción de sus ventajas y desventajas, así como su grupo objetivo.

También decidí dar una puntuación a cada uno de los libros; por supuesto, esto es en gran medida una opinión subjetiva, pero decidí evaluar al menos de alguna manera su valor práctico relativo. Repito una vez más: esta evaluación es desde el punto de vista de hoy, porque hay libros realmente interesantes allí, pero hoy simplemente están desactualizados. Debido a mis pretensiones perfeccionistas, no califiqué ninguno de los libros con 5 puntos, y me gustaría enfatizar que la gran mayoría de estos libros están destinados a principiantes, no hay necesidad de crear ilusiones aquí.

Entonces, por el momento, en mi descripción a continuación, TODOS los libros sobre FreeBSD en ruso que se publicaron a finales de 2011 se presentan y describen consistentemente. ¡Ir!

Los mejores libros sobre FreeBSD

1) Brian Tyman, Michael Eben “FreeBSD. Administración: el arte de lograr el equilibrio. Enciclopedia del usuario", 2003 y 2005.

Conozco al menos tres ediciones de este, uno de los primeros libros en ruso sobre FreeBSD, de 2003 y dos de 2005. En ese momento tenían bastante buena pinta, había muy buena dinámica de ventas y popularidad (no sé si era porque eran muy buenos, o porque simplemente no había alternativas a ellos en ese momento), pero desde el punto perspectiva de 2011: todas estas publicaciones están muy desactualizadas.

Todas las publicaciones están dirigidas a usuarios novatos. Una presentación y descripción coherente de los principales servicios y conceptos de FreeBSD. Califico su valor práctico con 2 puntos: este es un libro obsoleto para principiantes.

2) Brian Tyman, "FreeBSD 6. La guía completa", 2009

En 2009, uno de los autores del libro descrito anteriormente, Brian Tyman, publicó un libro voluminoso y sistemático de mucha mayor calidad, solo que ahora se llama " FreeBSD 6. Guía completa " El libro es muy bueno. Para ser honesto, me gusta mucho. serie de libros Soltado, en el que ella salió. La serie siempre produce guías completas, con el máximo énfasis en la versatilidad y el detalle.

En estructura, esto es, por supuesto, más un libro de referencia que un libro de texto. Todavía parece relativamente bueno como introducción detallada al tema. Califico su valor práctico con 4 puntos: un libro para principiantes y niveles intermedios.

Por cierto, se lanzó recientemente, hasta ahora solo en inglés, que es lo que recomendaría como punto de partida ideal para estudiar el sistema si el inglés no es una barrera para ti.

3) Fedorchuk A. Thorne, A. “FreeBSD. Instalación, configuración, uso", 2003

El libro fue escrito por autores nacionales y para usuarios novatos. ¿Quién no sabe quién es Fedorchuk? Se trata de un conocido “propagandista” de Linux y FreeBSD en el territorio ex URSS, sabe contar cosas complejas de forma clara y no aburrida. Por tanto, el libro se distingue por una ligera informalidad en su presentación, lo que hace que su lectura sea más fácil en comparación con otros textos puramente técnicos. Desde el punto de vista de 2011, por supuesto, es posible leerlo e incluso útil, pero esto es más una historia. Califico su valor práctico con 2 puntos: un libro obsoleto para principiantes.

4) Fedorchuk A. “UNIX disponible: Linux, FreeBSD, DragonFlyBSD, NetBSD, OpenBSD”, 2006.

Después de este libro, se publicó un libro individual de Fedorchuk (ver sobre él más arriba), que es mejor elegir como introducción en comparación con su primer libro: el material aquí será más reciente y mejor sistematizado. El libro describe cosas más generales que son ciertas para todo el mundo *BSD, con una indicación separada de las diferencias inherentes a cada clon individual, lo cual es muy útil para ampliar sus horizontes. Personalmente, también me gusta mucho DragonFlyBSD; es muy bueno que haya información al respecto aquí, aunque ya es información muy antigua, porque este sistema ha evolucionado mucho desde entonces.

A pesar de la mención de Linux en el título, el autor se inclina fuertemente hacia la revisión de sistemas BSD. Una muy buena introducción a los diferentes sistemas Unix, si aún no ha decidido cuál elegir. El texto es fácil de leer y el libro está bien escrito. Muchos de mis amigos comenzaron a estudiar UNIX con este libro; como dijo uno: sentí como si me llevaran de la mano; todas las explicaciones eran precisas, claras y comprensibles. Califico su valor práctico en 3 puntos: un libro para principiantes. Por otra parte, me gustaría señalar que el texto de este libro tiene un estilo, y esto significa algo para muchos.

5) Roderick Smith, “La referencia completa a FreeBSD” (FreeBSD: La referencia completa), 2004.

Este es un libro de referencia tanto para principiantes como para usuarios intermedios.

Este libro no es adecuado para todos los que empiezan a aprender FreeBSD por primera vez. Se describen muchas cosas, pero al mismo tiempo es bastante superficial: sirve sólo como introducción al problema. Hmm, pero a pesar de todo, este es un buen libro, pero para ser honesto, en 2011 no es lo mismo... es mejor usar otras fuentes en línea más relevantes como referencia. Califico su valor práctico hoy en 3 puntos: este libro es para principiantes.

6) Michael Lucas “FreeBSD. Una guía detallada" (Absolute BSD. La guía definitiva para FreeBSD), 2004.

Hay dos ediciones de este libro: para 2004 y 2009. Michael Lucas es una figura muy conocida en el mundo FreeBSD, un participante activo en el Proyecto de documentación de FreeBSD y escribe mucho y bien sobre este tema. En línea gran cantidad sus manuales, entrevistas y otra creatividad grafómana juguetona.

Este libro es su presentación bastante detallada del sistema en casi 900 páginas. Lo recomiendo encarecidamente, incluso desde la perspectiva de 2011 el libro parece muy decente (pero definitivamente deberías coger la última edición de 2009; es mucho mejor). Califico su valor práctico con 4 puntos: un libro para principiantes.

7) Sergey Ivanovsky “Sistema operativo UNIX FreeBSD: un curso sencillo de administración de sistemas para principiantes y usuarios experimentados”, 2004.

La segunda edición, al igual que la primera, es una rara porquería. este autor con persistencia maníaca reimprime el mismo libro bajo diferentes nombres y diseños, por ejemplo, como “Las preguntas más frecuentes sobre FreeBSD” - tenga cuidado de no meterse en problemas comprando este tipo de “libro”. Mierda rara. Víctima de principios de los 90, cuando era posible publicar cualquier cosa, ante la ausencia de Internet para la mayoría.

En este caso, es sólo una colección de traducciones torpes y tempranas de algunos manuscritos terriblemente antiguos en FreeBSD, instrucciones y preguntas frecuentes; todas estas piezas separadas se recopilan, mezclan y publican al azar tal como están. Su valor práctico lo califico con 1 punto: un libro para... Ni siquiera aconsejo a un principiante que lo lea. Lo confieso públicamente: este es el único libro en mi vida que quemé deliberada y cínicamente (lo usé para calentar la chimenea de la casa de campo).

8) Marshall Kirk McKusick, George W. Neville-Neal “FreeBSD. Arquitectura e implementación”, 2006.

Una traducción operativa al ruso de lo que ya se ha convertido en un clásico y, en cierto modo, el único libro dedicado a estructura interna FreeBSD moderno, escrito por autores *BSD de fama mundial. El libro analiza las entrañas de la versión 5.2, naturalmente, está destinado principalmente a programadores de sistemas; Pero debemos advertir inmediatamente que, debido al enorme volumen inicial de material, el libro se parece más a un esquema secuencial del dispositivo FreeBSD - y no esperemos encontrar en él una enciclopedia completa sobre la arquitectura FreeBSD.

Qué puedo decir - el único libro de este tipo si está interesado en la programación de sistemas en FreeBSD - este libro es IMPRESCINDIBLE, incluso a pesar de la corrección desde el punto de vista del paso del tiempo y la pérdida de relevancia, es un Un libro muy, muy importante y genial. Califico su valor práctico en 4 puntos: un libro para programadores y simpatizantes de sistemas.

9) A. Didok “Uno a uno con FreeBSD”, 2006

Este es un libro grueso y detallado de un autor ucraniano; REALMENTE me gustó. El libro está fuertemente relacionado con la vida real. situaciones de la vida- muchos ejemplos prácticamente útiles. En mi opinión, este libro no es adecuado para un principiante, es decir, para empezar. Rara vez publicamos este tipo de libros: aquí hay poca teoría y tópicos (el autor se refiere al hombre para obtener detalles en casi todas las páginas), pero hay mucho ejemplos prácticos, puedes sentir inmediatamente la experiencia laboral del autor en telecomunicaciones.

Este estilo de presentación se puede interpretar de dos maneras: es difícil para una persona que no está en la materia y para principiantes, en cambio, para quienes sí están en la materia, no todo es tan sencillo, porque el autor ofrece sus propias recetas para resolver problemas cotidianos(Personalmente, me parece que en algunos casos se pueden encontrar mejores opciones; aquí en la cocina todos intentan poner su granito de arena). Esta es una colección de recetas de cocina con un mínimo de teoría.

El libro describe la rama 6.x todavía relativamente actual (en cualquier caso, es mejor que la mayoría de los libros anteriores, donde estamos hablando acerca de en general sobre sistemas 4.x-.5.x). Recomendado para todos los principiantes, pero sólo después buen dominio teoría. Hay muchos errores en el diseño del libro en sí (por ejemplo, en el índice del libro, la nota a pie de página de la misteriosa página 40 se repite persistentemente muchas veces). Califico su valor práctico con 4 puntos: un libro para especialistas de nivel intermedio.

10) D. Kolisnichenko. "FreeBSD. De principiante a profesional", 2011

Dejé esto para el final. Denis, un gran generalista que publica libro tras libro sobre la más amplia gama de temas, ya ha publicado dos libros sobre FreeBSD. No consideraré la edición de 2010, simplemente porque ya existe una edición para 2011, con un nombre ligeramente diferente, ampliado y complementado.

Bien, qué puedo decir. Denis tiene mucha experiencia escribiendo, pero hay algunas revelaciones y profundidad en él. Es muy interesante la tarea del autor, el concepto del libro que se plantea en el prefacio. La cuestión es que intenta escribir según el plan del Manual, pero añadiendo lugares que, en su opinión, no se describen allí con suficiente detalle o se omiten por completo. Resulta que se trata de una especie de capa semántica adicional que encaja perfectamente con el contenido del manual oficial de FreeBSD. Él mismo dice que después de leer el Manual por un lado y estudiar su libro por el otro, todas las preguntas del lector novato deberían quedar completamente resueltas.

Personalmente, me gustó este libro, aunque Kolesnichenko a menudo es perseguido en algunos foros, así que repito: la opinión es subjetiva, al igual que me gustó su enfoque metodológico al estilo de las "interpretaciones ampliadas del Manual". Quizás, para un principiante, esto sea realmente lo que necesita, especialmente considerando que este libro es bastante reciente: analiza FreeBSD 7. Describe el sistema X actual y otras innovaciones que, en el contexto de la densidad obsoleta de la mayoría de los Los libros descritos anteriormente no se ven muy mal. Califico su valor práctico con 4 puntos: el libro es ideal (pero siempre en estrecha combinación con el Manual) como introducción al tema para especialistas principiantes.

Además de los libros descritos exclusivamente sobre FreeBSD, para un desarrollo más amplio recomiendo los siguientes clásicos:

11) Nemeth E., Snyder G., Seabass S., Hein T. “UNIX. Guía del administrador del sistema"

Recomiendo su tercera edición de 2002 (y también hubo una reimpresión en 2008): es un libro verdaderamente universal, muy conocido y respetado en el mundo de los administradores de UNIX. Describe todo en paralelo. tareas basicas administración y para varios sistemas Unix populares a la vez, incluida su última tercera edición, existen recomendaciones directas de administración, incluido FreeBSD.

Este producto de calidad, escrito de forma muy concisa, sin agua, muy universal. Probablemente por eso será difícil de leer para un principiante; para un profesional ya no será interesante, resulta que su consumidor objetivo son los administradores de nivel medio; En este entorno a menudo se le llama La Biblia del Administrador. Califico su valor práctico en 3 puntos.

12) Yu. "UNIX desde dentro", 2003

pienso esto libro domestico ideal para iniciarse en programación del sistema en sistemas Unix (cualquiera, no solo FreeBSD), una especie de excelente etapa preparatoria (colocación) en la transición de la administración pura a libros como Marshall Kirk McKusick " FreeBSD. Arquitectura e implementación" Toma y comienza a leer el último sin preparación preliminar simplemente no tendrás éxito, así que vahalia justo lo que necesitas para empezar en esta área. es lindo aqui buen idioma describe información general y básica sobre el dispositivo Unix, que, creo, no quedará obsoleto en 20 años. Califico su valor práctico en 3 puntos.

13) Brian Kernighan y Rob Pike. UNIX. El entorno de programación Unix, 2003

Hay varias ediciones de este libro; también es una especie de clásico sobre el tema. Un libro del autor del lenguaje C, uno de los desarrolladores de Unix. Esto es lo que ellos mismos escriben sobre sus objetivos: “Nuestra tarea es mostrar la filosofía de la programación bajo UNIX. Dado que esta filosofía se basa en las relaciones entre programas, debemos mayoría Este libro está dedicado a discutir herramientas individuales, pero en el contexto de sus intercambio, incluso para la creación de nuevos programas”. En lo que a mí respecta, este libro equilibra finamente la intersección entre la administración avanzada de sistemas y su programación, por lo que definitivamente será útil para ambas categorías de ciudadanos.

Naturalmente, los conceptos generales que en él se describen son igualmente También se aplican a FreeBSD y no tienen un plazo de prescripción como tal. Este libro es el mejor para la introducción. Konstantin Belousov, ahora parte del equipo central de FreeBSD. Califico su valor práctico debido a la versatilidad e integridad del material en 4 puntos.

Y para concluir, le recuerdo al principiante: además de los libros impresos de terceros revisados, Proyecto FreeBSD tiene su propio manual maravilloso y detallado, que también ha sido traducido al ruso (un poco no del todo). versión actual), y para desarrolladores novatos existe un . Y, por supuesto, no hay por qué tener miedo de las fuentes primarias (del hombre, del hombre y nuevamente del hombre); esta es la fuente más completa de todo tipo de detalles aplicados.



¿Te gustó el artículo? ¡Compartir con tus amigos!