¿Cuáles son algunas de las lecturas obligatorias (libros, trabajos de investigación, blogs) para sistemas operativos?

Las referencias [1] y [3] son ​​libros de texto clásicos para sistemas operativos.

Las últimas ediciones de estos libros (búsquelos en línea), así como la lista de lectura (o conjunto de libros de texto requeridos y recomendados) de clases de avance / posgrado y grupos de lectura (algo único en las universidades de investigación de EE. UU. De alto rango) en universidades de investigación que tener excelentes laboratorios de investigación en CS le proporcionaría una lista de publicaciones de investigación seminal. Además, vea ¿Cómo encuentro los documentos seminales de un campo académico?

También prestaría atención a las listas de lectura recomendadas para Ph.D. Exámenes preliminares / completos (o ronda # 1 del examen de calificación de doctorado) para la materia / (sub) campo de los sistemas operativos. Algunas universidades como Stanford y la Universidad de Wisconsin-Madison tienen copias de anteriores Ph.D. Exámenes preliminares / exhaustivos que indican lo que debe saber en diferentes asignaturas básicas de CS, incluido el sistema operativo. Contestarlas puede llevarlo a buscar libros de texto avanzados en el sistema operativo, que pueden cubrir algunos temas interesantes, emergentes y / o candentes en la investigación del sistema operativo.

Tenga en cuenta que algunas universidades de investigación tienen listas de correo a las que los miembros no universitarios pueden suscribirse.

En cuanto a la investigación interesante en el sistema operativo, consulte http://www.barrelfish.org/. Es un laboratorio de investigación en ETH Zurich que está trabajando en sistemas operativos para procesadores de muchos núcleos junto con sus colaboradores en IBM. Finalmente, algunos laboratorios de investigación están haciendo que el sistema operativo sea “inteligente”. Por “inteligente”, me refiero a hacer uso de conceptos en informática orgánica o informática autónoma. Tienden a exhibir propiedades de auto-X, tales como auto-protección, auto-optimización, auto-manejo, auto-curación, auto-reparación, y lo que no. Un enfoque común es tratar este sistema operativo autónomo como un sistema de control adaptativo de múltiples entradas y múltiples salidas (MIMO). Sí, necesitaría algunos conocimientos básicos de sistemas de control / ingeniería para aplicar tales técnicas al desarrollo exitoso de sistemas operativos autónomos / inteligentes. Por lo tanto, para mirar estos temas de investigación en el sistema operativo de manera productiva, es útil si tiene una buena base en la pila de hardware / software. Ver ¿Es bueno saber software (programación) Y hardware (ingeniería)? ¿Por qué? y ¿Cuáles son los buenos cursos de software / hardware relacionados con ECE?

Transacciones de ACM en sistemas informáticos (TOCS): http://tocs.acm.org/

Revisión de sistemas operativos (OSR) y otros recursos del Grupo de interés especial de ACM sobre sistemas operativos (SIGOPS): http://www.sigops.org/osr.html

Doctor en Filosofía. Disertaciones de científicos informáticos que ganaron el Premio de Doctorado EuroSys Roger Needham: http://www.eurosys.org/phdprize/…

[1] A. Silberschatz, PB Galvin y G. Gagne. Conceptos del sistema operativo. John Wiley & Sons, Hoboken, NJ, octava edición, 2010.

[2] W. Stallings. Sistemas operativos: aspectos internos y principios de diseño. Pearson Education, Upper Saddle River, NJ, sexta edición, 2009.

[3] AS Tanenbaum. Sistemas operativos modernos. Pearson Education, Upper Saddle River, NJ, tercera edición, 2009.

Ya hay buenas respuestas aquí, pero me pidieron que contestara esto, así que daré mis favoritas. Quizás más útil, enumeraré un par de libros que se han sugerido que no considero “lecturas obligatorias”.

Desea comenzar con un libro de teoría del sistema operativo . Es decir, un libro que cubre los conceptos del sistema operativo de manera genérica. Mi favorito personal es el llamado “libro de dinosaurios”, llamado así por los dinosaurios irrelevantes que adornan la portada de cada edición. El libro de dinosaurios es el “abuelo” de los libros de texto del sistema operativo y es una “lectura obligada” para el campo.

Conceptos del sistema operativo por Abraham Silberschatz, Peter B. Galvin, Greg Gagne

Entonces consideraría lo que llamo un libro aplicado . Es decir, un texto que aborda un sistema operativo específico. Entre la ubicuidad de Linux y el código abierto y disponible, me cuesta recomendar un libro en cualquier otro sistema operativo. Aquí recomendaría Linux Kernel Development . Ahora en su tercera edición, se ha convertido en el clásico libro del núcleo ( descargo de responsabilidad : soy el autor).

Desarrollo del kernel de Linux por Robert Love

Luego elegiría los sistemas UNIX para arquitecturas modernas . Menos sobre Unix y más sobre cómo diseñar núcleos escalables en el mundo actual de múltiples procesadores con diversas estrategias de almacenamiento en caché, este libro es excelente. Aprenderá más sobre la interacción del procesador y la memoria caché con el software que en cualquier otro lugar.

Sistemas UNIX para arquitecturas modernas: multiprocesamiento simétrico y almacenamiento en caché para programadores de kernel por Curt Schimmel

Luego tomaría UNIX Internals . Se está poniendo un poco anticuado (1995), pero analiza los conceptos del sistema operativo, como el subprocesamiento múltiple y la prevención del kernel, los conceptos modernos del sistema de archivos y la administración de la memoria.

UNIX Internals: The New Frontiers por Uresh Vahalia

Podría enumerar más: un libro aplicado en un sistema operativo alternativo como Windows Internals , un libro C incondicional como Expert C Programming , un manual de procesador como Intel 64 e IA-32 Architectures Software Developer’s Manual, pero no lo haría. en cuanto a llamar a estos “debe leer”. Sin embargo, los recomiendo.

Algunos esfuerzos obvios que me saltaría. No estoy necesariamente deprimido en ninguno de estos trabajos (algunos de ellos los recomendaría) pero difícilmente son “lecturas obligatorias:” El diseño del sistema operativo UNIX de Bach (o realmente cualquiera de los muchos buenos libros que cubren Unix más antiguo sistemas), los sistemas operativos modernos de Tanenbaum (o cualquier libro de teoría más allá del “libro de dinosaurios”, ya que solo necesita uno), o cualquier investigación actual. Seguramente hay un buen trabajo por ahí, pero aún no sabemos qué es. Nada de esto debe leerse (todavía).

Y sería negligente no mencionar el código fuente. La fuente de Linux y muchos otros sistemas está disponible. Léelo!

Según mi experiencia, sugeriría comenzar rápido y feo. Repase cualquier presentación básica del sistema operativo (puede ser de su trabajo de curso en la escuela) que le dará una visión general de cómo los sistemas realmente funcionan juntos y se sienten. La razón por la que debe hacer esto es que le ayuda a obtener una imagen global de lo que se está metiendo. Luego, puede acceder a documentos más detallados y conectarse con qué / por qué se está haciendo.

Libros:
Ahora entrando en algunas cosas serias, un estudiante universitario promedio de ciencias de la computación al menos estudia A. Silberschatz, PB Galvin y G. Gagne. Conceptos del sistema operativo. John Wiley & Sons, Hoboken, NJ, octava edición, 2010. Explica los conceptos simples un poco claramente en comparación con algunos de los otros libros que he hojeado. Recientemente me enamoré de
Desarrollo del kernel de Linux (3a edición) por Robert Love. Esto es imprescindible para alguien que quiere profundizar.

Proyecto de programación:
Como parte de nuestra clase de pregrado, mejoramos las construcciones en el sistema operativo Pint. Puede echar un vistazo a las tareas y la documentación del proyecto aquí en la página de Stanford. El proyecto es bastante simple de configurar con algunos problemas, por supuesto. Tiene una implementación de código auxiliar y no tiene que preocuparse por implementar tablas / colas hash, ya que se explican muy bien en la documentación. Viene con Pintos.pdf que consta de documentación específica de la asignación y secciones del apéndice. De esta manera, el proyecto hace un muy buen trabajo al apegarse a su intención, es decir, aprender a construir un núcleo del sistema operativo y proporcionar servicios a los programas de los usuarios en lugar de quedar atrapado en problemas triviales.

Avanzado:
Después de terminar con la teoría básica y algunos proyectos prácticos de programación, podemos pasar a conceptos avanzados en sistemas operativos. Ahora podría aprender sobre cualquier cosa según sus intereses. Una lista de temas que estudié durante mi clase de pregrado de Sistemas Operativos Avanzados fue:

  • Diseño de Btrfs – btrfs Wiki,
  • ext2, ext3, ext4
  • Btrees
  • sombreado y clones“
  • Protocolo de versión 4 del Sistema de archivos de red (NFS),
  • Papel NFS4
  • Ocfs2
  • Xen
  • Comparación de técnicas de software y hardware en virtualización
  • IOMMU especificación AMD
  • Intel VT, VT-x

Si desea leer más, ¡el profesor Vivek Pai ha compilado una lista de lecturas para usted!

PD: Respuesta escrita demasiado descuidadamente.

Esto es un poco autoenchufable: para principiantes, recomendaría altamente mi libro de asesores sobre sistemas operativos: Sistemas operativos: tres piezas fáciles.

El libro está dirigido específicamente a estudiantes universitarios y requiere muy poco conocimiento previo. El libro está estructurado en términos de problemas que cada parte del sistema operativo está diseñado para resolver . Al menos para mí, esto fue más fácil de comprender que leer que un sistema operativo está compuesto de partes iguales.

Por ejemplo, en la sección sobre procesos:

El quid del problema:
¿CÓMO PROPORCIONAR LA ILUSIÓN DE MUCHOS CPUS?
Aunque solo hay unas pocas CPU físicas disponibles, ¿cómo puede
¿El sistema operativo proporciona la ilusión de un suministro casi interminable de dichas CPU?

El libro también contiene interesantes anécdotas históricas, ejercicios y consejos de diseño repartidos entre varias secciones.

1.Libros: –

  • Debe leer –
  • Conceptos de sistemas operativos por Abraham Silberschatz, Greg Gagne y Peter Baer Galvin
  • Sistemas operativos modernos por Andrew S. Tanenbaum
  • Sistemas operativos: diseño e implementación por Andrew S. Tanenbaum
  • Algo mas –
    • Sistemas operativos: aspectos internos y principios de diseño de William Stallings
    • Sistemas operativos y middleware de Max Hailperin
    • Sistemas operativos: principios y práctica por Tom Anderson
    • Principios de los sistemas operativos por Brian Stuart
    • Sistemas operativos en profundidad: diseño y programación por Thomas W. Doeppner
    • Sistemas operativos de Harvey Deitel y Paul Deitel

    2. Videos: –

    • Informática 162, 001 – Primavera 2015
    • Sistemas operativos CS-342
    • CS 377 Spring ’14: Sistemas operativos
    • Introducción a los sistemas operativos

    Los libros sobre el sistema operativo se dividen principalmente en dos categorías.
    1) El que habla de las características del sistema operativo general.
    Los libros en esta categoría son los siguientes:
    a) Sistemas operativos modernos (3ª edición) [Tapa dura] Andrew S. Tanenbaum
    b) W. Stallings. Sistemas operativos: aspectos internos y principios de diseño. Pearson Education, Upper Saddle River, NJ, sexta edición, 2009.
    2) Los libros que hablan sobre sistemas operativos específicos:
    a) El diseño del sistema operativo UNIX Maurice J. Bach
    b) Desarrollo del kernel de Linux (3a edición) por Robert Love
    c) UNIX Internals: las nuevas fronteras Uresh Vahalia

    Estos tres libros me han parecido muy interesantes y me ayudaron a comprender mejor el sistema operativo.

    El libro de Silberschatz ( Conceptos del sistema operativo ) que otros han mencionado es de hecho un clásico, por una buena razón.

    Personalmente, aprendí de una versión preliminar de los sistemas operativos de Thomas Doeppner en profundidad . No es tan amplio como Silberschatz, pero profundiza en algunas cosas como los sistemas de archivos. El libro es la colección del material del curso que capacitó a una parte considerable de los desarrolladores que trabajan en el núcleo de Solaris (incluidos los 3 inventores de DTrace) y varios sistemas de archivos principales (incluidos WAFL y un cocreador de ZFS), junto con muchos otros núcleos profesionales. desarrolladores desde entonces.

    Me sorprende que nadie haya mencionado el Comentario de los Leones sobre la 6ta edición de UNIX, con el código fuente . Este es literalmente el código fuente de UNIX v6 con comentarios en ejecución en cada línea. La mayoría de los elementos esenciales de un sistema operativo moderno están ahí, simplemente más simple. El código es lo suficientemente corto como para poder leerlo todo, y el comentario aclara bien las partes difíciles. También fue efectivamente el primer libro de texto de SO ampliamente utilizado, distribuido por fotocopiadora porque no todos tenían una licencia para el código fuente de UNIX en ese entonces.

    También vale la pena señalar, el Diseño e Implementación recientemente actualizado de FreeBSD .

    La mayoría de las respuestas aquí ya cubren los libros más conocidos e introductorios. Sin embargo, últimamente mi libro de referencia favorito ha sido Professional Linux® Kernel Architecture de Wolfgang Mauerer. De ninguna manera es un libro introductorio.

    Se sumerge profundamente en Linux que falta en el resto de los otros libros. Este libro fue escrito en algún lugar en 2008, y todavía es muy relevante y el sistema operativo Linux implementa la mayor parte de su funcionalidad de manera idéntica incluso hoy. Entonces, si realmente quiere saber cómo el sistema operativo mantiene su caché de página hasta la gestión del árbol de radix, este es el que debe leer. Sin embargo, el resto de los libros (mencionados anteriormente por otros) son más conceptuales y mantendrán su valor por más tiempo que este.

    Entonces, si eres como yo, alguien que ha leído la mayoría de los otros libros de SO en algún momento de su vida y le gustaría tener una referencia para verificar su interpretación del código fuente (¡sí, es así de profundo!), Lo haría Recomiendo encarecidamente este!

    La clase de Sistemas Operativos de la Universidad Carnegie-Mellon (15-410) requiere que todos los estudiantes completen un “informe del libro” en un libro relacionado con los sistemas operativos.

    Aquí está la lista de lecturas aprobadas: http://www.cs.cmu.edu/~410/repor

    La lista incluye breves borrones del personal del curso sobre los libros. Ocasionalmente se actualiza a través de sugerencias de los estudiantes. No todos los libros en esta lista están en sistemas operativos, pero todos están relacionados tangencialmente.

    Modern Operating Systems, de Tanenbaum, tiene un historial muy bueno y relativamente breve de la sección del sistema operativo que me pareció muy útil, y luego una cobertura mucho más detallada de todo lo demás. Sin embargo, lo más importante es obtener una descripción general de las cosas clave en un sistema operativo: realmente no va a leer un libro de 1000 páginas (a menos que tenga mucho tiempo + compromiso), por lo que una descripción general + cobertura general de lo que Te interesa es bueno.

    Para citar el libro en el Capítulo 1.12, Resumen (cuarta edición): “Los conceptos básicos sobre los que se construyen todos los sistemas operativos son procesos, administración de memoria, administración de E / S, sistema de archivos y seguridad. Cada uno de estos se tratará en un capítulo posterior “.

    1. Sistemas operativos modernos de Andy Tanenbaum
    2. Sistemas operativos por William Stallings et al.
    3. Conceptos del sistema operativo por Silberschatz et al.
    4. Unix Internals, Las nuevas fronteras – por Vahalia
    5. Programación avanzada en el entorno Unix – Richard Stevens, Stephen Rago
    6. Arquitectura del kernel de Linux por Wolfgang Mauerer
    7. Sistemas UNIX para Arquitectura Moderna

    los primeros 2 libros estancados y tennenbaum son bastante famosos y altamente calificados en amazon.com

    http://www.amazon.com/Modern-Ope
    http://books.google.co.in/books ? …

    Para los entusiastas de VM, “Los sistemas Unix para architestures modernos: multiprocesamiento simétrico y almacenamiento en caché para programadores de kernel” es una lectura obligada.
    Para Linux, la “Arquitectura profesional del kernel de Linux” de Wolfgang Mauerer cubre muchos temas básicos.

    No hay sustituto para la lectura de código de muestra. Entonces, el código fuente del kernel de Linux debería ser el punto de partida si desea profundizar.

    Una empresa de Source Energy, que ofrece software y servicios de autoempoderamiento y autocuración para clientes de todo el mundo. La Energía Fuente es energía espiritual que se manifiesta por el universo y el creador de nuestro universo, también conocido como Energía Universal.

    El hecho de que los blogs se hayan convertido en un método de promoción y marketing extremadamente popular no es sorprendente. No cuando considera las ventajas que ofrecen sobre el sitio web estándar. Y dado que este tipo de servicios se mantienen en el servidor del propietario. No es necesario adquirir alojamiento web independiente o nombres de dominio.

    Obtendrá más información a través de este libro electrónico: Operaciones de blog

    También están los sistemas operativos modernos de Tanenbaum (4a edición). Es una descripción de alto nivel de los sistemas operativos y sus componentes.

    More Interesting

    ¿Qué beneficios obtiene Microsoft, como empresa comercial, de su departamento de investigación (MSR)?

    ¿Cuál es la investigación reciente en informática? ¿Cómo puedo obtener un conocimiento profundo de alguna investigación o tema si deseo saber?

    ¿Qué computadoras portátiles usan los grupos de investigación en visión artificial / AR? MacBooks o Alienwares? ¿Cuáles son las especificaciones?

    ¿En qué tipo de proyectos personales puedo trabajar para ayudar a mi solicitud de escuela de posgrado CS (tengo 2 años)?

    ¿Qué libros deberían estar en el estante de cualquier aspirante a informático?

    ¿Cuáles son las tendencias modernas en la investigación en informática?

    ¿Es que SOP en GRE para informática requiere un gran trabajo de investigación o un muy buen proyecto?

    ¿Tener demasiados datos ralentiza tu PC?

    ¿Por qué usar sigmoid y tanh como funciones de activación en LSTM o RNN no es problemático, pero este no es el caso en otras redes neuronales?

    ¿Qué necesito saber para hacer un software que pueda leer y hacer un resumen de cualquier información?

    ¿Ha habido algún progreso en la arquitectura de subsunción desde que se introdujo?

    ¿Qué es parte del conocimiento central, tanto en un sentido práctico como teórico, que todo informático debería haber escuchado al menos o tener una comprensión básica de él?

    ¿La Facultad de Ingeniería Poonjar está produciendo ingenieros informáticos de clase mundial?

    ¿Cómo se explica NP Complete y NP-hard a un niño?

    ¿Cómo debo revisar la literatura relevante sobre un tema muy específico sobre el cual no tengo mucho conocimiento?