Como funciona el tenedor

Como funciona el tenedor 2020

pid = fork()

En informática, especialmente en el contexto del sistema operativo Unix y sus similares, fork es una operación por la que un proceso crea una copia de sí mismo. Se trata de una interfaz necesaria para cumplir con los estándares POSIX y Single UNIX Specification. Normalmente se implementa como una envoltura de la Biblioteca Estándar C (libc) a las llamadas al sistema fork, clone, u otras del kernel. El fork es el método principal de creación de procesos en los sistemas operativos tipo Unix.
En los sistemas operativos multitarea, los procesos (programas en ejecución) necesitan una forma de crear nuevos procesos, por ejemplo, para ejecutar otros programas. Fork y sus variantes son normalmente la única forma de hacerlo en los sistemas tipo Unix. Para que un proceso inicie la ejecución de un programa diferente, primero se bifurca para crear una copia de sí mismo. A continuación, la copia, llamada «proceso hijo», llama a la llamada del sistema exec para superponerse al otro programa: cesa la ejecución de su anterior programa en favor del otro.
La operación de bifurcación crea un espacio de direcciones separado para el hijo. El proceso hijo tiene una copia exacta de todos los segmentos de memoria del proceso padre. En las variantes modernas de UNIX que siguen el modelo de memoria virtual de SunOS-4.0, se implementa la semántica copy-on-write y no es necesario copiar la memoria física. En su lugar, las páginas de memoria virtual de ambos procesos pueden referirse a las mismas páginas de memoria física hasta que uno de ellos escriba en dicha página: entonces se copiará. Esta optimización es importante en el caso común en el que el fork se utiliza junto con el exec para ejecutar un nuevo programa: normalmente, el proceso hijo realiza sólo un pequeño conjunto de acciones antes de cesar la ejecución de su programa en favor del programa que se va a iniciar, y requiere muy pocas, si es que alguna, de las estructuras de datos de su padre.

cómo funciona git fork

Según Wikipedia, un proceso es la instancia de un programa informático que está siendo ejecutado por uno o varios hilos. Contiene el código del programa y su actividad. Dependiendo del sistema operativo (SO), un proceso puede estar formado por múltiples hilos de ejecución que ejecutan instrucciones de forma concurrente.
En el ámbito informático, fork() es el principal método de creación de procesos en los sistemas operativos tipo Unix. Esta función crea una nueva copia llamada hijo a partir del proceso original, que se llama padre. Cuando el proceso padre se cierra o falla por alguna razón, también mata al proceso hijo.
Dentro de la primera condición if se ha producido una bifurcación y está comprobando si es el proceso hijo, entonces continúa ejecutando su código. En caso contrario (si es el proceso padre) no pasará por ese if. Entonces, en el segundo if, sólo aceptará el proceso padre que tenga el id positivo.
Hemos aprendido lo que puede hacer fork(), y cómo implementarlo en el lenguaje de programación C en ejemplos únicos. Si estás interesado más en las abstracciones del sistema operativo, y cómo funciona, entonces te recomiendo que empieces a aprender sobre las tuberías y luego sobre los semáforos.

ejemplo de proceso hijo de bifurcación

Por fin está listo para proponer cambios en el proyecto principal. Este es el último paso en la producción de un fork del proyecto de otra persona, y podría decirse que es el más importante. Si has hecho un cambio que crees que puede beneficiar a la comunidad en su conjunto, deberías considerar contribuir de nuevo.
Al hacer clic en Comparar y en la Solicitud de Extracción se accede a una página de discusión, donde se puede introducir un título y una descripción opcional. Es importante proporcionar la mayor cantidad de información útil y una justificación de por qué estás haciendo este Pull Request en primer lugar. El propietario del proyecto necesita ser capaz de determinar si su cambio es tan útil para todos como usted cree que es.
Los Pull Requests son un área de discusión. En este caso, el Octocat está muy ocupado, y probablemente no fusionará tus cambios. En el caso de otros proyectos, no se ofenda si el propietario del proyecto rechaza su Pull Request, o le pide más información sobre el motivo por el que se ha hecho. Incluso puede ser que el propietario del proyecto decida no fusionar tu pull request, y eso está totalmente bien. Su copia existirá en la infamia en Internet. Y quién sabe, tal vez alguien que no conoces encuentre tus cambios mucho más valiosos que el proyecto original. ¡Comparte y comparte por igual!