2011-06-17 14 views
6

Duplicar posible:
shifting from windows to *nix programming platform¿Algún consejo sobre la programación de Linux para el programador de Windows (C/C++)?

¿Alguien sabe un buen recurso, compacto que me permitiera migrar de programación de Windows para la programación de Linux?

Logré hacer que se ejecutaran aplicaciones simples, revisé la arquitectura de daemon, pero de alguna manera no sé por dónde empezar para obtener una mejor comprensión de las mejores prácticas y soluciones comunes para la arquitectura en general.

Supongo que todos los threading, mutex, sección crítica, I/O, (named?) Tuberías están probablemente muy lejos del desarrollo de Windows. Pero no puedo encontrar una buena documentación compacta.

Los demonios en Linux parecen ser mucho más simples que en Windows, pero ya me encontré con la función de bifurcación que es completamente inusual, y debería haber otras cosas como esa, supongo.

Además, ¿qué hay de todo eso de conformidad con POSIX? Escuché que se supone que es independiente de la plataforma, pero también leí que no es exactamente compatible con algunas distribuciones.

+2

La pregunta no parece estar duplicada. – taskinoor

+1

@taskinoor: Es muy cerca. –

+0

Me gustaría comprender mejor los conceptos de sincronización, administración de procesos, archivos de E/S y errores conectados, por ejemplo, abriendo un enlace simbólico para escribir. Prácticamente todo lo que puede hacer a través de vim/gcc/c para desarrollar componentes de lógica comercial. Ese enlace es más acerca de los comandos Distros/Editors/console. Pero lo comprobaré. – Coder

Respuesta

3

Puede echar un vistazo a esr's The Art of Unix Programming, que responderá la mayoría de sus preguntas.

Explicará la filosofía * nix, el diseño de las API, los orígenes y las razones de la compatibilidad con POSIX, y todo lo demás.

0

Para enhebrar en particular, es probable que desee leer en NPTL.

fork es lo más parecido a Windows CreateProcess pero la semántica es lo suficientemente diferente como para comprender bien ambas cosas antes de asignar el código.

0

Hay dos ings que necesitas aprender.

  1. Herramientas
  2. APIs

para herramientas miran: make y GCC. Haga que las formas sean la base de la mayoría de las compilaciones de Unix, aunque hay varias herramientas (Herramientas automáticas y CMake) que generarán el Makefile por usted.

Para las API el mejor documento es el GLibC Manual. Hace un gran trabajo al explicar las aplicaciones básicas de Unix.

0

Eche un vistazo a Unix Systems Programming de Robbins. Realmente se trata más de POSIX que solo de UNIX, y cubre bastante material con algunos ejemplos en profundidad muy bonitos también. El factor POSIX significa que se traduce muy bien a Linux, así como a algunas otras variantes de UNIX, como BSD y OSX. Después de leerlo, definitivamente obtendrá una muy buena visión general de cómo funciona un sistema POSIX, así como también un excelente estudio de las principales áreas en las que usaría la API, como enhebrado, sockets y archivos E/S.

Cuestiones relacionadas