Este documento resume los conceptos clave de los sistemas operativos, incluyendo: 1) El kernel, system calls y módulos; 2) Cómo las system calls permiten a los procesos de usuario acceder a funciones del kernel; 3) Los módulos extienden la funcionalidad del kernel sin necesidad de recompilarlo. También explica los dispositivos y cómo los controlan los drivers implementados como módulos del kernel.
Este documento introduce el sistema operativo Linux. Explica que los usuarios pueden interactuar con Linux de tres formas: mediante una interfaz gráfica, comandos o acceso remoto. Describe los componentes clave de la interfaz gráfica X Window como el servidor X, gestores de ventanas y librerías. También cubre conceptos como estructura de directorios, comandos básicos, redirección de entrada/salida, niveles de ejecución y el proceso de arranque/parada del sistema.
El documento describe SystemTap, una herramienta que permite extraer información del kernel de Linux en ejecución. SystemTap permite escribir scripts que nombran eventos y les asignan manejadores. Cuando ocurren los eventos, los manejadores recopilan y resumen datos del kernel. Los scripts de SystemTap se compilan a módulos de kernel que se cargan para recopilar datos. La herramienta facilita el diagnóstico de problemas de rendimiento y funcionalidad del sistema rastreando eventos del kernel como la entrada y salida de funciones.
(1) El documento describe cómo Unix implementa el ciclo de vida de los procesos mediante el uso de funciones como fork(), exec(), wait() y exit(). (2) Cada proceso tiene un identificador único (PID) y mantiene información como el PID de su proceso padre (PPID), identificadores de usuario y grupo, y estado. (3) Unix administra los procesos rotando el uso del procesador entre procesos listos para ejecutar de forma que todos parezcan avanzar simultáneamente aunque sólo uno ejecute a la vez.
Este documento describe diferentes comandos y herramientas para obtener información sobre el sistema, incluyendo ps, top y free para ver procesos y uso de memoria, df y du para espacio en disco, lspci para hardware PCI, y el Monitor del Sistema GNOME para una interfaz gráfica. También proporciona recursos adicionales como las páginas del manual y el directorio /proc.
OProfile es una herramienta de supervisión de rendimiento que utiliza el hardware de monitoreo de rendimiento del procesador para recopilar información sobre el kernel y los ejecutables del sistema, como cuándo se hace referencia a la memoria y el número de solicitudes de caché L2. OProfile almacena muestras de datos de rendimiento en archivos que luego pueden usarse para generar informes sobre el rendimiento a nivel de sistema y aplicaciones.
Este documento trata sobre la administración de procesos en Linux. Explica conceptos clave como que un proceso es una instancia de un programa en ejecución, los diferentes estados de un proceso, y herramientas como ps, top, nice y renice para monitorear y administrar procesos. También cubre temas como como se inician los procesos a través de bifurcación, los cinco estados posibles de un proceso, y cómo afectan el niceness y la prioridad la programación de procesos.
El documento describe los procesos, servicios y configuración de red en Linux. Los procesos son unidades básicas de planificación que comprenden el estado de ejecución de un programa, sus recursos y credenciales. Los servicios son programas que gestionan y administran el sistema de forma automática. La configuración de red implica detectar la tarjeta de red, asignar una dirección IP, máscara de subred y puerta de enlace predeterminada, y opcionalmente crear interfaces virtuales.
Este documento describe los parámetros y módulos generales del kernel de Linux. Explica cómo cargar y descargar módulos del kernel usando las utilidades modprobe, insmod y rmmod. También cubre cómo configurar la carga persistente de módulos y especificar parámetros para los módulos. Finalmente, proporciona ejemplos de parámetros comunes para diversos controladores de almacenamiento.
Este documento introduce el sistema operativo Linux. Explica que los usuarios pueden interactuar con Linux de tres formas: mediante una interfaz gráfica, comandos o acceso remoto. Describe los componentes clave de la interfaz gráfica X Window como el servidor X, gestores de ventanas y librerías. También cubre conceptos como estructura de directorios, comandos básicos, redirección de entrada/salida, niveles de ejecución y el proceso de arranque/parada del sistema.
El documento describe SystemTap, una herramienta que permite extraer información del kernel de Linux en ejecución. SystemTap permite escribir scripts que nombran eventos y les asignan manejadores. Cuando ocurren los eventos, los manejadores recopilan y resumen datos del kernel. Los scripts de SystemTap se compilan a módulos de kernel que se cargan para recopilar datos. La herramienta facilita el diagnóstico de problemas de rendimiento y funcionalidad del sistema rastreando eventos del kernel como la entrada y salida de funciones.
(1) El documento describe cómo Unix implementa el ciclo de vida de los procesos mediante el uso de funciones como fork(), exec(), wait() y exit(). (2) Cada proceso tiene un identificador único (PID) y mantiene información como el PID de su proceso padre (PPID), identificadores de usuario y grupo, y estado. (3) Unix administra los procesos rotando el uso del procesador entre procesos listos para ejecutar de forma que todos parezcan avanzar simultáneamente aunque sólo uno ejecute a la vez.
Este documento describe diferentes comandos y herramientas para obtener información sobre el sistema, incluyendo ps, top y free para ver procesos y uso de memoria, df y du para espacio en disco, lspci para hardware PCI, y el Monitor del Sistema GNOME para una interfaz gráfica. También proporciona recursos adicionales como las páginas del manual y el directorio /proc.
OProfile es una herramienta de supervisión de rendimiento que utiliza el hardware de monitoreo de rendimiento del procesador para recopilar información sobre el kernel y los ejecutables del sistema, como cuándo se hace referencia a la memoria y el número de solicitudes de caché L2. OProfile almacena muestras de datos de rendimiento en archivos que luego pueden usarse para generar informes sobre el rendimiento a nivel de sistema y aplicaciones.
Este documento trata sobre la administración de procesos en Linux. Explica conceptos clave como que un proceso es una instancia de un programa en ejecución, los diferentes estados de un proceso, y herramientas como ps, top, nice y renice para monitorear y administrar procesos. También cubre temas como como se inician los procesos a través de bifurcación, los cinco estados posibles de un proceso, y cómo afectan el niceness y la prioridad la programación de procesos.
El documento describe los procesos, servicios y configuración de red en Linux. Los procesos son unidades básicas de planificación que comprenden el estado de ejecución de un programa, sus recursos y credenciales. Los servicios son programas que gestionan y administran el sistema de forma automática. La configuración de red implica detectar la tarjeta de red, asignar una dirección IP, máscara de subred y puerta de enlace predeterminada, y opcionalmente crear interfaces virtuales.
Este documento describe los parámetros y módulos generales del kernel de Linux. Explica cómo cargar y descargar módulos del kernel usando las utilidades modprobe, insmod y rmmod. También cubre cómo configurar la carga persistente de módulos y especificar parámetros para los módulos. Finalmente, proporciona ejemplos de parámetros comunes para diversos controladores de almacenamiento.
Este documento presenta una introducción a la operación básica de Linux. Explica cómo iniciar y cerrar sesión en Linux, los diferentes tipos de usuarios, y cómo iniciar sesión de forma remota a través de Telnet. También describe comandos básicos como date, cal, man, clear y passwd. Finalmente, explica cómo completar comandos automáticamente y los comandos finger y chfn.
40 configuración del kernel y dispositivosAprende Viendo
Este documento describe cómo actualizar manualmente el kernel en Red Hat Enterprise Linux. Explica que los kernels vienen empaquetados en RPM y que Package Management Tool o yum pueden actualizarlos automáticamente. Luego detalla los pasos para descargar e instalar manualmente un kernel actualizado, incluyendo verificar la imagen RAM inicial y configurar el gestor de arranque para usar el nuevo kernel.
Este documento describe cómo administrar procesos en Ubuntu. Existen varias formas de observar los procesos que se están ejecutando, ya sea a través de una interfaz gráfica como el Monitor del Sistema o mediante comandos de consola como "top" o "ps -aux". También explica cómo eliminar procesos utilizando los comandos "kill" y "killall", y cómo pausarlos temporalmente con "kill -stop" y reanudarlos con "kill -cont".
Este documento presenta una introducción a los shells en Linux. Explica qué son los shells y sus funciones. Detalla los shells disponibles comúnmente como Bash, C Shell y TC Shell. Describe cómo completar nombres de archivos usando comodines como * y ?, y corchetes []. Explica el uso de tuberías, redireccionamiento de entrada/salida estándar y de errores. Proporciona ejemplos del uso de comandos como grep, sort, y redireccionamiento a archivos.
El documento describe comandos básicos de Linux para la administración del sistema, incluyendo comandos para verificar el estado del sistema, como uptime, who, free, df; comandos para archivos como du; y comandos de entrada/salida como login, shutdown y reboot. También explica el intérprete de comandos y cómo funcionan los scripts de inicio de sesión.
Este documento describe varios archivos de configuración encontrados en el directorio /etc/sysconfig/ en Red Hat Enterprise Linux. Algunos de los archivos más importantes discutidos incluyen /etc/sysconfig/network, el cual configura la red, /etc/sysconfig/clock, que controla la interpretación de los valores leídos desde el reloj del sistema, y /etc/sysconfig/init, que controla cómo el sistema aparecerá y funcionará durante el arranque. El documento también menciona que muchos de estos archivos tienen una variedad de opciones que sólo son us
El documento habla sobre procesos en sistemas Linux. Explica que un proceso es una instancia de un programa en ejecución, y que los procesos pueden encontrarse en estados como ejecutable, dormido o detenido. También describe utilidades como ps, top y pstree que pueden usarse para monitorear y administrar procesos en un sistema.
Este documento contiene instrucciones para realizar varios ejercicios prácticos relacionados con procesos en sistemas operativos. Incluye objetivos como estudiar las órdenes uptime, pstree y ps para ver información sobre procesos, crear un bucle infinito usando un script shell y observar cómo afecta al sistema, y usar órdenes como nice, renice y kill para modificar la prioridad y terminar procesos. También cubre temas como límites de recursos con ulimit, programar tareas con at y ver el uso
Este documento resume los pasos para aprender a interactuar con la terminal de Linux y sus comandos básicos. Explica cómo explorar directorios y archivos, crear directorios y archivos, examinar archivos y usar editores de texto. Los objetivos son aprender los comandos básicos de Linux, explorar el sistema de archivos, crear directorios y archivos, y familiarizarse con conceptos como metacaracteres y redireccionamiento de entrada/salida. El documento guía al usuario a través de una serie de procedimientos prácticos para lograr estos objet
En este taller práctico aprenderemos a desarrollar módulos de Kernel que funcionen como rootkits. Al final del taller el participante podrá mostrar un pequeño rootkit que funcione como keylogger. Entenderá y desarrollara técnicas para ocultarse y métodos anti-forenses.
Objetivo Principal:
Aprender las técnicas de desarrollo de Rootkits
Objetivos Secundarios:
Conocer las características del Kernel.
Aprender a generar módulos de Kernel
Conociendo algunas téncias (VFS Hijacking, Syscall Hijacking, StructTask Hijack, Infecting LKM’s)
Temario
Introducción a los Rootkits
Introducción a los Módulos de Kernel
Consideraciones de Programación
Parámetros de Módulos
Estructuras del Kernel
Hijacking
Prácticas
El módulo “Hello World”
Manejando Parámetros en el módulo.
Trabajando con la task_struct
Escondiendo módulos
Hijacking de /proc
Hijacking de syscall
Creando de un keylogger
Requisitos:
Conocimientos medios en C
Manejo básico/medio de linux
Una PC/Laptop con VirtualBox (Se entregará a cada participante una imágen con Debian 64Bits para que comiencen a desarrollar).
Este documento habla sobre la construcción de rootkits básicos. Explica qué es un rootkit, los tipos comunes, y funciones como esconder procesos y archivos. Luego cubre consideraciones para desarrollo en kernel vs espacio de usuario, y ejemplos como módulos "Hello World" y manejo de parámetros. Por último, aborda temas avanzados como trabajar con la estructura de tareas, esconder el módulo cargado, y técnicas de hijacking como la tabla de syscalls y VFS.
Este documento contiene notas sobre sistemas IBM RS/6000 y AIX. Detalla diferentes series de sistemas IBM como RS6000, P520 y Z series. Explica conceptos como RISC, LPAR, terminales ASCII y X Window. También cubre temas de instalación y configuración de AIX como NIM, parches, PTF y opciones de configuración de LPAR. Por último, presenta comandos y herramientas de administración como smitty, lsvg y migratepv.
Este documento describe la configuración de redes en CentOS. Explica que los archivos de configuración de interfaz y scripts controlan las interfaces de red. Los archivos ifcfg-eth0 configuran cada tarjeta de red, especificando parámetros como el protocolo, dirección IP, y más. Los scripts ifup y ifdown activan y desactivan las interfaces. También cubre archivos de configuración de red como /etc/host y /etc/resolv.conf.
Este documento describe conceptos básicos de programación en GNU/Linux como programas, procesos, hilos, llamadas al sistema, GCC y comunicación entre procesos. Explica que los procesos solicitan servicios al núcleo mediante llamadas al sistema, y que un programa se convierte en proceso cuando es reconocido por el sistema operativo y se le asignan recursos. También cubre temas como compilación, Makefiles, creación de procesos, comunicación entre procesos y programación de sockets de red.
Este documento discute la generación de sistemas operativos, incluyendo la configuración del hardware como la CPU, memoria y dispositivos, y el uso de un programa especial como SYSGEN para crear tablas que describan el sistema. También cubre el arranque del sistema a través del programa de arranque que carga el kernel en la memoria principal e inicia su ejecución.
Este documento trata sobre los procesos en sistemas operativos. Explica el concepto de proceso, los diferentes estados de un proceso, y cómo se implementan múltiples procesos utilizando bloques de control de procesos, cambios de contexto y estructuras de control del sistema como colas.
El documento explica los niveles de ejecución en UNIX, que indican el modo de arranque del sistema y determinan qué usuarios pueden conectarse. El proceso init controla los niveles de ejecución, cargando órdenes asociadas a cada nivel almacenadas en /etc/inittab. Los sistemas UNIX pueden estar en niveles como monousuario, multiusuario, apagado o reinicio, y cada fabricante define sus propios niveles de ejecución.
Este documento explica los permisos de archivos y directorios en Linux y cómo se utiliza la orden chmod para modificarlos. Los permisos se dividen en lectura, escritura y ejecución, y se asignan a los usuarios dueños de archivos, a los miembros de su grupo y al resto. Chmod permite cambiar los permisos numéricamente o indicando los permisos a añadir o quitar para cada tipo de usuario.
vi es un editor de texto que permite editar archivos de manera simple. Funciona en modo comando, inserción y última línea. En modo comando se mueve el cursor y se dan órdenes de edición. En modo inserción se inserta y edita texto. La última línea permite guardar cambios y salir del editor. Vi es una herramienta útil para editar archivos de configuración.
Los principales sistemas operativos comerciales descritos en el documento incluyen Windows, Mac, OS/2, Unix, MVS y Linux. Cada uno tiene un núcleo diferente que maneja los recursos básicos y ofrece servicios a través de capas de software. La mayoría también incluye interfaces gráficas de usuario.
Este documento presenta una introducción a la operación básica de Linux. Explica cómo iniciar y cerrar sesión en Linux, los diferentes tipos de usuarios, y cómo iniciar sesión de forma remota a través de Telnet. También describe comandos básicos como date, cal, man, clear y passwd. Finalmente, explica cómo completar comandos automáticamente y los comandos finger y chfn.
40 configuración del kernel y dispositivosAprende Viendo
Este documento describe cómo actualizar manualmente el kernel en Red Hat Enterprise Linux. Explica que los kernels vienen empaquetados en RPM y que Package Management Tool o yum pueden actualizarlos automáticamente. Luego detalla los pasos para descargar e instalar manualmente un kernel actualizado, incluyendo verificar la imagen RAM inicial y configurar el gestor de arranque para usar el nuevo kernel.
Este documento describe cómo administrar procesos en Ubuntu. Existen varias formas de observar los procesos que se están ejecutando, ya sea a través de una interfaz gráfica como el Monitor del Sistema o mediante comandos de consola como "top" o "ps -aux". También explica cómo eliminar procesos utilizando los comandos "kill" y "killall", y cómo pausarlos temporalmente con "kill -stop" y reanudarlos con "kill -cont".
Este documento presenta una introducción a los shells en Linux. Explica qué son los shells y sus funciones. Detalla los shells disponibles comúnmente como Bash, C Shell y TC Shell. Describe cómo completar nombres de archivos usando comodines como * y ?, y corchetes []. Explica el uso de tuberías, redireccionamiento de entrada/salida estándar y de errores. Proporciona ejemplos del uso de comandos como grep, sort, y redireccionamiento a archivos.
El documento describe comandos básicos de Linux para la administración del sistema, incluyendo comandos para verificar el estado del sistema, como uptime, who, free, df; comandos para archivos como du; y comandos de entrada/salida como login, shutdown y reboot. También explica el intérprete de comandos y cómo funcionan los scripts de inicio de sesión.
Este documento describe varios archivos de configuración encontrados en el directorio /etc/sysconfig/ en Red Hat Enterprise Linux. Algunos de los archivos más importantes discutidos incluyen /etc/sysconfig/network, el cual configura la red, /etc/sysconfig/clock, que controla la interpretación de los valores leídos desde el reloj del sistema, y /etc/sysconfig/init, que controla cómo el sistema aparecerá y funcionará durante el arranque. El documento también menciona que muchos de estos archivos tienen una variedad de opciones que sólo son us
El documento habla sobre procesos en sistemas Linux. Explica que un proceso es una instancia de un programa en ejecución, y que los procesos pueden encontrarse en estados como ejecutable, dormido o detenido. También describe utilidades como ps, top y pstree que pueden usarse para monitorear y administrar procesos en un sistema.
Este documento contiene instrucciones para realizar varios ejercicios prácticos relacionados con procesos en sistemas operativos. Incluye objetivos como estudiar las órdenes uptime, pstree y ps para ver información sobre procesos, crear un bucle infinito usando un script shell y observar cómo afecta al sistema, y usar órdenes como nice, renice y kill para modificar la prioridad y terminar procesos. También cubre temas como límites de recursos con ulimit, programar tareas con at y ver el uso
Este documento resume los pasos para aprender a interactuar con la terminal de Linux y sus comandos básicos. Explica cómo explorar directorios y archivos, crear directorios y archivos, examinar archivos y usar editores de texto. Los objetivos son aprender los comandos básicos de Linux, explorar el sistema de archivos, crear directorios y archivos, y familiarizarse con conceptos como metacaracteres y redireccionamiento de entrada/salida. El documento guía al usuario a través de una serie de procedimientos prácticos para lograr estos objet
En este taller práctico aprenderemos a desarrollar módulos de Kernel que funcionen como rootkits. Al final del taller el participante podrá mostrar un pequeño rootkit que funcione como keylogger. Entenderá y desarrollara técnicas para ocultarse y métodos anti-forenses.
Objetivo Principal:
Aprender las técnicas de desarrollo de Rootkits
Objetivos Secundarios:
Conocer las características del Kernel.
Aprender a generar módulos de Kernel
Conociendo algunas téncias (VFS Hijacking, Syscall Hijacking, StructTask Hijack, Infecting LKM’s)
Temario
Introducción a los Rootkits
Introducción a los Módulos de Kernel
Consideraciones de Programación
Parámetros de Módulos
Estructuras del Kernel
Hijacking
Prácticas
El módulo “Hello World”
Manejando Parámetros en el módulo.
Trabajando con la task_struct
Escondiendo módulos
Hijacking de /proc
Hijacking de syscall
Creando de un keylogger
Requisitos:
Conocimientos medios en C
Manejo básico/medio de linux
Una PC/Laptop con VirtualBox (Se entregará a cada participante una imágen con Debian 64Bits para que comiencen a desarrollar).
Este documento habla sobre la construcción de rootkits básicos. Explica qué es un rootkit, los tipos comunes, y funciones como esconder procesos y archivos. Luego cubre consideraciones para desarrollo en kernel vs espacio de usuario, y ejemplos como módulos "Hello World" y manejo de parámetros. Por último, aborda temas avanzados como trabajar con la estructura de tareas, esconder el módulo cargado, y técnicas de hijacking como la tabla de syscalls y VFS.
Este documento contiene notas sobre sistemas IBM RS/6000 y AIX. Detalla diferentes series de sistemas IBM como RS6000, P520 y Z series. Explica conceptos como RISC, LPAR, terminales ASCII y X Window. También cubre temas de instalación y configuración de AIX como NIM, parches, PTF y opciones de configuración de LPAR. Por último, presenta comandos y herramientas de administración como smitty, lsvg y migratepv.
Este documento describe la configuración de redes en CentOS. Explica que los archivos de configuración de interfaz y scripts controlan las interfaces de red. Los archivos ifcfg-eth0 configuran cada tarjeta de red, especificando parámetros como el protocolo, dirección IP, y más. Los scripts ifup y ifdown activan y desactivan las interfaces. También cubre archivos de configuración de red como /etc/host y /etc/resolv.conf.
Este documento describe conceptos básicos de programación en GNU/Linux como programas, procesos, hilos, llamadas al sistema, GCC y comunicación entre procesos. Explica que los procesos solicitan servicios al núcleo mediante llamadas al sistema, y que un programa se convierte en proceso cuando es reconocido por el sistema operativo y se le asignan recursos. También cubre temas como compilación, Makefiles, creación de procesos, comunicación entre procesos y programación de sockets de red.
Este documento discute la generación de sistemas operativos, incluyendo la configuración del hardware como la CPU, memoria y dispositivos, y el uso de un programa especial como SYSGEN para crear tablas que describan el sistema. También cubre el arranque del sistema a través del programa de arranque que carga el kernel en la memoria principal e inicia su ejecución.
Este documento trata sobre los procesos en sistemas operativos. Explica el concepto de proceso, los diferentes estados de un proceso, y cómo se implementan múltiples procesos utilizando bloques de control de procesos, cambios de contexto y estructuras de control del sistema como colas.
El documento explica los niveles de ejecución en UNIX, que indican el modo de arranque del sistema y determinan qué usuarios pueden conectarse. El proceso init controla los niveles de ejecución, cargando órdenes asociadas a cada nivel almacenadas en /etc/inittab. Los sistemas UNIX pueden estar en niveles como monousuario, multiusuario, apagado o reinicio, y cada fabricante define sus propios niveles de ejecución.
Este documento explica los permisos de archivos y directorios en Linux y cómo se utiliza la orden chmod para modificarlos. Los permisos se dividen en lectura, escritura y ejecución, y se asignan a los usuarios dueños de archivos, a los miembros de su grupo y al resto. Chmod permite cambiar los permisos numéricamente o indicando los permisos a añadir o quitar para cada tipo de usuario.
vi es un editor de texto que permite editar archivos de manera simple. Funciona en modo comando, inserción y última línea. En modo comando se mueve el cursor y se dan órdenes de edición. En modo inserción se inserta y edita texto. La última línea permite guardar cambios y salir del editor. Vi es una herramienta útil para editar archivos de configuración.
Los principales sistemas operativos comerciales descritos en el documento incluyen Windows, Mac, OS/2, Unix, MVS y Linux. Cada uno tiene un núcleo diferente que maneja los recursos básicos y ofrece servicios a través de capas de software. La mayoría también incluye interfaces gráficas de usuario.
Este documento proporciona información sobre redirecciones y pipes en Linux. Explica que todos los flujos de entrada y salida se manejan como archivos y pueden redirigirse. Detalla cómo utilizar los operadores >, >> y | para redirigir la salida, entrada y crear pipes entre comandos. También presenta comandos como date, cal, cat y du dando ejemplos de su uso.
El documento describe las reglas y características de un sistema de planificación de procesos, incluyendo prioridades, estados, tiempos de ejecución y cambio de procesos. Presenta dos escenarios iniciales con 10 y 12 procesos respectivamente, indicando sus atributos y eventos de desbloqueo a lo largo del tiempo.
El documento trata sobre la planificación de procesos en Linux. Explica que Linux es un sistema operativo multiproceso que mantiene varios procesos en memoria al mismo tiempo. Cada proceso se representa mediante una estructura de datos llamada task_struct que almacena información sobre el estado, identificadores, enlaces con otros procesos, tiempos de ejecución y otros datos del proceso. El planificador se encarga de asignar tiempo de CPU a los procesos de forma justa basándose en la política, prioridad y otros campos de task_struct.
Proyecto 2016 - ITS - SISTEMAS OPERATIVOS IIPablo Macon
El documento describe un proyecto para un script de Shell que gestione una disquería. El script debe permitir dar de alta, baja y modificar discos, y realizar consultas y ventas. Debe almacenar datos de discos y facturas en archivos de texto, y reflejar las ventas en el stock. El proyecto será evaluado en base al diseño, datos, código, uso de archivos y documentación entregada.
This document outlines the plan for a music video featuring 5 different locations - a dark road, studio, bar, toilets, and outside wall. It will star one girl and include some other girls at the bar and bathroom scenes. The costumes will start casual and change to a white vest and nice dress. The visual style will include extreme closeups, mid shots, and closeups of the girl's face at different scenes to convey the narrative of a girl missing an important person and waiting for them throughout the night.
Is it possible to transform healthcare (leaders)?Alice Lee
This talk was originally presented at the Lean Enterprise Institute in Cambridge, MA
10 years ago, Alice Lee, former VP of Business Transformation at Beth Israel Deaconess Medical Center in Boston and lean change agent, embarked on a journey that changed how she thought about healthcare forever. Lee is an early pioneer in lean healthcare and the first to introduce lean thinking and practice in a hospital setting in New England. After leading many experiments in systems, technology, and operations in the complex setting of an academic medical center environment, Lee now writes and speaks about what she's learned.
Lee is passionate about radically improving healthcare, an industry lacking a sustainable business model. She focuses her work today on shifting the mindset of senior leaders, staff, and physicians to value a keener sense of order around processes and larger systems, helping them channel "constructive dissatisfaction" to change the status quo thinking that keeps healthcare broken. Watch a video with Alice Lee on the challenges and rewards of applying Lean to healthcare. http://www.lean.org/LeanPost/Posting.cfm?LeanPostId=51
Carmelo cruz mendoza inicia la nueva administraciónmegaradioexpress
Los presidentes municipales de varios municipios de Oaxaca se reunieron con un senador y diputado federal del PRD para coordinar esfuerzos de gestión y trabajo conjunto. Acordaron entregar 50 casas a familias de escasos recursos en un municipio y apoyar proyectos técnicos. El senador ofreció apoyo en gestiones y el diputado en empujarlas ante instancias federales. También discutieron acciones de unidad política en el PRD y se manifestaron en contra de la reforma energética.
- The document discusses Lake Shore Gold's 2015 full-year and Q4 results, including record revenue, earnings, and cash flows. Production met guidance with low unit costs.
- A new resource estimate for the 144 Gap deposit outlined 301,700 ounces of indicated gold and 319,200 ounces of inferred gold. Recent drilling continues to expand this zone.
- Exploration drilling at the Whitney project confirmed and expanded mineralized zones, highlighting the potential for open-pit mining.
- Lake Shore Gold announced a business combination agreement with Tahoe Resources that would create a larger, low-cost precious metals producer with increased growth potential through ownership in both companies' assets.
Porur times Neighbourhood newspaper, Sports civil & Business News,local Newspaper, porur rental,about porurnews, Porur Times, porurtimes contact no, porur local newspaper, porur times paper, Times of Porur, Porur News, Porur clssified.
The document provides an overview and agenda for a presentation on the implementation of the Affordable Care Act (ACA) in Pennsylvania. It discusses key aspects of the ACA including the goals of increasing access to care, using data to drive healthcare improvements, and strengthening the healthcare workforce. It also summarizes Pennsylvania-specific impacts such as the number of residents who benefitted from certain ACA provisions. The presentation agenda covers an overview of the ACA, its implementation at the state level including Pennsylvania's decisions, expanding access to care through the insurance marketplace and Medicaid expansion, and ensuring coverage of essential health benefits.
Pemerintah Indonesia berencana mengembangkan industri halal untuk meningkatkan ekspor dan pariwisata. Beberapa langkah yang akan dilakukan antara lain mempromosikan produk halal ke pasar global, meningkatkan sertifikasi produk halal, serta melatih SDM agar mampu bersaing di industri halal.
How does Diaspora Mobilization Become a Causal Feature of Structural ChangeMyung Ja Kim
This document discusses how diaspora groups can transform from being dependent on host state policies to becoming agents capable of structural change. It uses the example of the Zainichi Korean diaspora in Japan, who have faced ambiguous legal status and exclusionary policies since World War 2. Though initially in a position of effect due to Japanese nation-building policies, the Zainichi diaspora developed transnational ties that allowed certain organizations to influence politics in both Japan and North Korea. The document argues that host state policies can provide leverage that diaspora groups exploit to mobilize across borders and engage in international issues, thus becoming causal agents rather than dependent variables. It aims to explain how the Zainichi diaspora transitioned
Este documento presenta las notas de un curso de sistemas operativos. Se divide en 7 módulos que cubren temas como procesos, planificación, memoria y archivos. El objetivo es proveer conceptos básicos de sistemas operativos en español y ejemplificarlos con implementaciones reales como UNIX y Windows NT.
Este documento describe los pasos para configurar estaciones de trabajo, incluyendo:
1) Instalar Windows 7 en una máquina virtual, requiriendo 1 GHz de procesador, 1 GB de RAM y 16 GB de espacio en disco.
2) Quitar programas innecesarios, desactivar efectos visuales y sonidos para mejorar el rendimiento.
3) Configurar programas que se ejecutan al inicio y servicios para acelerar el arranque.
Este documento describe los componentes principales de un sistema operativo. Explica que un sistema operativo gestiona los procesos y la memoria principal al asignar recursos como tiempo de CPU y espacio de memoria. También cubre temas como interrupciones, excepciones y llamadas al sistema, que permiten la comunicación entre aplicaciones y el sistema operativo.
Este documento describe la estructura básica del sistema operativo Linux. Explica que Linux se compone principalmente del núcleo, el shell, el sistema de archivos y las utilidades. Describe brevemente cada una de estas partes y algunos de sus componentes clave como los directorios principales y los comandos para manipular archivos.
Un sistema operativo es un programa que gestiona los procesos básicos de un sistema informático y permite la ejecución de otros programas. Un sistema operativo puede ser multiusuario, multiprocesador, multitarea y tiempo real. Los sistemas operativos más populares incluyen Windows, Mac OS y varias distribuciones de Linux.
Este documento explica conceptos básicos de programación en sistemas GNU/Linux. Explica que un proceso es la unidad de ejecución en un sistema operativo y que los programas se convierten en procesos cuando se les asignan recursos. Describe las estructuras de datos utilizadas para gestionar procesos, como los bloques de control de proceso y la tabla de procesos. También explica los diferentes estados que puede tener un proceso y cómo se gestionan mediante colas.
El documento describe los sistemas operativos. Define un sistema operativo como un programa que gestiona los procesos básicos de un sistema informático y permite la ejecución de otros programas. Explica que los primeros sistemas operativos se ejecutaban en grandes computadoras y cómo evolucionaron hacia sistemas más sencillos para uso doméstico.
Los sistemas operativos Unix, Linux y Windows gestionan los procesos de forma jerárquica, asignando un identificador único a cada proceso y vinculándolos a través de su proceso padre. Cada proceso tiene recursos, directorios y permisos asociados que son administrados y monitoreados por el núcleo del sistema operativo. Existen comandos y herramientas para visualizar, controlar y dar soporte a los procesos en ejecución.
Este documento explica conceptos básicos de programación en sistemas GNU/Linux. Introduce las definiciones de programa, proceso e hilos, y describe el mecanismo de llamadas al sistema que permite a los procesos de usuario acceder a los servicios del núcleo. Explica también los estados de los procesos en Linux, las estructuras de datos usadas para gestionar procesos, y los identificadores de proceso.
El documento describe brevemente la evolución histórica de los sistemas operativos, desde los primeros sistemas de los años 40-60 que eran operados directamente por programadores, hasta los avances en hardware y software que llevaron al desarrollo de sistemas operativos más complejos con capacidades de multiprogramación y gestión de memoria y procesos. También explica conceptos clave de los sistemas operativos como interrupciones, excepciones y los componentes principales de un sistema operativo moderno.
El documento define los objetivos y funciones de un sistema operativo. Los objetivos son proporcionar un modelo de computadora más simple y administrar los recursos hardware. Las funciones principales son proveer recursos abstractos a los programas y administrar los recursos hardware subyacentes. Un sistema operativo contiene subsistemas como el núcleo y servicios de usuario. Puede tener una estructura monolítica o de capas/microkernel.
El documento habla sobre los sistemas operativos. Explica que un sistema operativo gestiona los procesos básicos de un sistema informático y permite la ejecución de otras operaciones. También describe brevemente la evolución histórica de los sistemas operativos desde los primeros sistemas de los años 40-60 hasta los sistemas operativos multiprogramados más modernos. Finalmente, explica algunos de los componentes clave de un sistema operativo como la gestión de procesos, interrupciones y excepciones.
El documento describe las principales estructuras de los sistemas operativos, incluyendo la estructura modular, la estructura de anillos o capas, la estructura de microkernel, la estructura multinucleo y la estructura de máquinas virtuales. Explica que el sistema operativo sirve de intermediario entre el usuario y la computadora para proporcionar un entorno cómodo de uso.
El documento describe los componentes y funciones principales de un sistema operativo. Explica que un sistema operativo gestiona los procesos, la memoria, el almacenamiento secundario, los dispositivos de entrada/salida, el sistema de archivos, y procesa interrupciones y excepciones del hardware. También traza brevemente la historia y evolución de los sistemas operativos desde los primeros sistemas de lotes hasta los sistemas operativos multiprogramados modernos.
El documento describe los componentes y funciones principales de un sistema operativo. Explica que un sistema operativo gestiona los procesos, la memoria, el almacenamiento secundario, los dispositivos de entrada/salida, el sistema de archivos, y procesa interrupciones y excepciones del hardware. También resume brevemente la historia y evolución de los sistemas operativos desde los primeros sistemas de lotes hasta los sistemas operativos multiprogramados modernos.
Este documento describe los componentes principales de un sistema operativo, incluyendo la gestión de procesos, memoria, almacenamiento, entrada/salida de dispositivos y archivos. Explica que un sistema operativo es el programa que gestiona los recursos del sistema y permite la ejecución de otros programas, manejando tareas como la asignación de tiempo de CPU, memoria y acceso a dispositivos.
Este documento describe los componentes principales de un sistema operativo, incluyendo la gestión de procesos, memoria, almacenamiento, entrada/salida y archivos. Explica que un sistema operativo administra los recursos del sistema y permite la ejecución coordinada de programas.
El documento describe las principales estructuras de un sistema operativo, incluyendo la estructura modular, la estructura de anillos o capas, la estructura microkernel, la estructura multinucleo y la estructura de máquinas virtuales. Explica que el sistema operativo sirve de intermediario entre el hardware y el usuario, y que su objetivo es proporcionar un entorno cómodo para el usuario.
El documento proporciona una descripción general de los sistemas operativos, incluida su evolución histórica desde los primeros sistemas operados por programadores hasta los modernos sistemas operativos multiprogramados. Explica conceptos clave como las llamadas al sistema, los modos de ejecución de la CPU, las interrupciones y excepciones, y cómo los sistemas operativos gestionan los recursos y la comunicación entre hardware y software.
El documento habla sobre los sistemas operativos. Explica que un sistema operativo gestiona los procesos básicos de un sistema informático y permite la ejecución de otras operaciones. También describe brevemente los componentes clave de un sistema operativo como la gestión de procesos, memoria y dispositivos de entrada/salida.
Similar a Linux Kernel - System Calls - Modules - Drivers (20)
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
El uso de las TIC en la vida cotidiana.pptxjgvanessa23
En esta presentación, he compartido información sobre las Tecnologías de la Información y la Comunicación (TIC) y su aplicación en diversos ámbitos de la vida cotidiana, como el hogar, la educación y el trabajo.
He explicado qué son las TIC, las diferentes categorías y sus respectivos ejemplos, así como los beneficios y aplicaciones en cada uno de estos ámbitos.
Espero que esta información sea útil para quienes la lean y les ayude a comprender mejor las TIC y su impacto en nuestra vida cotidiana.
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
4. Kernel de GNU Linux
ˆ 2,4 millones de lineas de c´odigo(y contando...)
ˆ El 70 % del c´odigo son drivers
ˆ Windows: mas del doble de lineas!
ˆ Tasa de errores en drivers con respecto al Kernel: 7 veces mas
ˆ Fuente:http://pdos.csail.mit.edu/6.097/readings/osbugs.pdf
ˆ Comparaci´on con la aerona´utica:
ˆ Aislamiento de fallas
ˆ Un problema en el toilet no afecta al sistema de navegaci´on!
5. Kernel Monol´ıtico - Mismo proceso
ˆ Todos los componentes del kernel linkeados en un mismo
binario en memoria.
ˆ Memoria Compartida(sincronizaci´on!)
ˆ Scheduler, Drivers, Memory Manager,etc en un mismo proceso
6. Kernel Monol´ıtico - Operating System Crash
ˆ ¿Que sucede si hay un error en un driver?
ˆ Windows: BSD(blue screen of death).
ˆ Unix: Kernel Panic.
ˆ Un ´unico gran componente linkeado en un mismo espacio de
direcciones implica un m´odulo muy grande y complejo.
ˆ La raz´on de tener un ´unico gran componente linkeado en un
mismo espacio de direcciones se debe a cuestiones de
performance por limitaciones de hardware tomadas hace
mucho tiempo.
ˆ ¿Hoy en dia la decisi´on seria la misma?
7. Microkernel - Procesos de usuario
ˆ Componentes del kernel en distintos procesos de USUARIO
ˆ Kernel minimalista(comunicaci´on con el hard e IPC)
ˆ IPC (Computaci´on distribuida!)
ˆ Scheduler, Drivers, Memory Manager en distintos procesos de
Usuario
ˆ IPC es parte del Kernel(muchos cambios de modo)
8. Microkernel
ˆ Pros
ˆ Facilidad para desarrollar servicios del SO.
ˆ Los bugs existen y existir´an siempre, entonces deben ser
aislados.
ˆ Kernel muy peque˜no, entonces mas f´acil de entender,
actualizar y optimizar.
ˆ Contras
ˆ Baja performance
ˆ La computaci´on distribuida es inheremente mas compleja que
la computaci´on por memoria compartida
ˆ No fue adoptado masivamente por la industria(ej. Minix)
11. API del Sistema Operativo
ˆ Los SOs proveen un conjunto de interfaces mediante las
cuales un proceso que corre en espacio de usuario accede a un
conjunto de funciones comunes
ˆ En UNIX el API principal que provee estos servicios es libc:
ˆ Es el API principal del SO
ˆ Provee las librer´ıas estandar de C
ˆ Es una Interface entre aplicaciones de usuario y las System
Calls(System Call Wrappers).
12. POSIX APIs
ˆ La funcionalidad anterior est´a definida por el estandar POSIX
ˆ Su pr´oposito es proveer una interfaz com´un para lograr
portabilidad
ˆ En el caso de las System Calls, el desarrollador generalmente
interact´ua con el API y NO directamente con el Kernel
ˆ En UNIX por lo general cada funci´on del API se corresponde
con una System Call
13. System Calls - Repaso
ˆ Son llamados al kernel para ejecutar una funci´on espec´ıfica
que controla un dispositivo o ejecuta una instrucci´on
privilegiada
ˆ Su pr´oposito es proveer una interfaz com´un para lograr
portabilidad
ˆ Su funcionalidad la ejecuta el Kernel
ˆ Recordar
ˆ Cambio de Modo
ˆ ¿Como se pasa de modo usuario a modo Kernel?
14. Invocando System Calls
ˆ Utilizando los wrappers de glibc
ˆ int rc = chmod( /etc/passwd", 0444);
ˆ Invocaci´on expl´ıcita utilizando la System Call syscall provista
por glibc
ˆ Definida en la libreria unistd.h
ˆ long int syscall (long int sysno, ...)
ˆ Ejemplo utilizando syscall:
ˆ rc = syscall(SYS chmod, /etc/passwd", 0444);
15. Ejemplo
#include <stdlib.h>
#include <sys/syscall.h>
#include <sys/time.h>
#include <unistd.h>
#define SYS_gettimeofday 78
void main(void){
struct timeval tv;
/* usando el wrapper de glibc */
gettimeofday(&tv, NULL);
/* Invocaci´on expl´ıcita del system call */
syscall(SYS_gettimeofday, &tv, NULL);
}
16. Interrupciones y System Calls
ˆ La manera en que una system call es llevada a cabo
depender´a del procesador.
ˆ Los procesadores x86 se basan en el
mecanismo de interrupciones.
ˆ Interrupci´on enmascarable int 0x80 en Linux.
ˆ Se usa el vector 0x80 para transferir el
control al kernel. Este vector de
interrupci´on esta inicializado durante el
startup del sistema.
ˆ Una librer´ıa de espacio de usuario(libc) carga el ´ındice de la
system call y sus argumentos, la interrupci´on enmascarable
por software 0x80 es invocada, la cual resulta en el cambio de
modo.
ˆ La estructura sys call table y el registro eax como ´ındice se
determina que funci´on invocar.
17. System Calls e Interrupciones
Consideremos el siguiente caso:
#include <syscall.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#define sys_getpid 20
int main(void) {
long ID = syscall(SYS_getpid);
printf ("El pId del proceso es:n", ID);
}
19. System Calls en GNU Linux
ˆ Debemos declarar nuestra syscall por un n´umero ´unico(syscall
number).
ˆ Aggregamos una entrada a la syscall table.
ˆ Debemos considerar el sys call number.
ˆ Ver que el c´odigo fuente organizado por arquitectura.
ˆ Respetar las convenciones del Kernel(ej. prefijo sys ).
/usr/src/linux-3.8/arch/x86/syscalls/syscall 32.tbl
343 i386 clock adjtime sys clock adjtime
347 i386 process vm readv sys process vm readv
348 i386 process vm writev sys process vm writev
349 i386 kcmp sys kcmp
350 i386 finit module sys finit module
351 i386 newcall sys newcall
20. System Calls en GNU Linux(Cont.)
ˆ Debemos definir el prototipo de nuestra system call
ˆ Los par´ametros a system calls deben ser realizados por medio
del stack
ˆ Informamos de esto al compilador mediante la macro
asmlinkage
ˆ asmlinkage instruye al compilador a pasar par´ametros por stack
y no por ejemplo en registros
/usr/src/linux-3.8/include/linux/syscalls.h
asmlinkage long sys newcall(int i);
21. System Calls en GNU Linux(Cont..)
ˆ Debemos nuestra syscall en alg´un punto del ´arbol de fuentes.
ˆ Podemos utilizar alg´un archivo existente.
ˆ Podemos incluir un nuevo archivo y su correspondiente
Makefile.
ˆ Ver apuntes adjuntos
En alg´un archivo ya incluido en los fuentes del Kernel...
asmlinkage int sys newcall(int a)
printk(¸calling newcall... ”);
return a+1;
ˆ ¿printk?, ¿porque no printf?
22. System Calls en GNU Linux(Cont...)
ˆ Recompilar el Kernel!
ˆ Idem Pr´actica 2
23. Invocando expl´ıcitamente nuestra System Call
#include <linux/unistd.h>
#include <stdio.h>
#define sys_newcall 351
int main(void) {
int i = syscall(sys_newcall,1);
printf ("El resultado es:n", i);
}
24. Strace
ˆ Reporta las system calls que realiza cualquier programa
ˆ man strace
ˆ Opci´on ´util -f (tiene en cuenta procesos hijos)
strace a.out (hola mundo)
execve(”./a.out”, [”./a.out”], [/* 62 vars */]) = 0
brk(0) = 0x1295000
access(/etc/ld.so.nohwcap”, F OK) = -1 ENOENT (No such file
or directory)
mmap(NULL, 8192, PROT READ—PROT WRITE,
MAP PRIVATE—MAP ANONYMOUS, -1, 0) = 0x7f3b70b43000
access(/etc/ld.so.preload”, R OK) = -1 ENOENT (No such file or
directory)
26. ¿Que son los M´odulos del Kernel?
ˆ “Pedazos de c´odigo” que pueden ser cargados y descargados
bajo demanda
ˆ Extienden la funcionalidad del kernel
ˆ Sin ellos el kernel ser´ıa 100
ˆ Monol´ıtico ”hibrido”
ˆ No recompilar ni rebootear
27. Comandos relacionados
ˆ lsmod
ˆ Lista los m´odulos cargados (es equivalente a cat
/proc/modules)
ˆ rmmod
ˆ Descarga uno o m´as m´odulos
ˆ modinfo
ˆ Muestra informaci´on sobre el m´odulo
ˆ insmod
ˆ Trata de cargar el m´odulo especificado
ˆ depmod
ˆ Permite calcular las dependencias de un m´odulo
ˆ depmod -a escribe las dependencias en el archivo
/lib/modules/version/modules.emp
ˆ modprobe
ˆ Emplea la informaci´on generada por depmod e informaci´on de
/etc/modules.conf para cargar el m´odulo especificado.
28. ¿Como creamos un m´odulo?
ˆ Debemos proveer dos funciones:
ˆ Inicializaci´on: Ejecutada cuando ejecutamos insmod.
ˆ Descarga: Ejecutada cuando ejecutamos rmmod.
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void){
printk(KERN_INFO "Hello world 1.n");
return 0;
}
void cleanup_module(void){
printk(KERN_INFO "Goodbye world 1.n");
}
29. ¿Como creamos un m´odulo?(cont.)
ˆ Tambi´en podemos indicarle otras funciones.
ˆ module init
ˆ module exit
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int hello_2_init(void){
printk(KERN_INFO "Hello, world 2n");
return 0;}
static void hello_2_exit(void){
printk(KERN_INFO "Goodbye, world 2n");}
module_init(hello_2_init);
module_exit(hello_2_exit);
30. ¿Como compilamos un m´odulo?
ˆ Construimos el Makefile
obj−m += h e l l o . o
a l l :
make −C / l i b / modules /$ ( s h e l l uname −r ) / b u i l d M=$ (pwd)
modules
clean :
make −C / l i b / modules /$ ( s h e l l uname −r ) / b u i l d M=$ (pwd)
clean
ˆ Compilamos make
make −C <KERNEL CODE> M=$ (pwd) modules
31. ¿Que son los Dispositivos?
ˆ Entendemos por dispositivo a cualquier dispositivo de hard:
discos, memoria, mouse, etc
ˆ Cada operaci´on sobre un dispositivo es llevada por c´odigo
espec´ıfico para el dispositivo
ˆ Este c´odigo se denomina “driver” y se implementa como un
m´odulo
ˆ Cada dispositivo de hardware es un archivo (abstracci´on)
ˆ Ejemplo: /dev/hda
ˆ En realidad no es un archivo.
ˆ Si leemos/escribimos desde ´el lo hacemos sobre datos “crudos”
del disco (bulk data).
ˆ Accedemos a estos archivos mediante operaciones b´asicas
(espacio del kernel).
ˆ read, write: escribir y recuperar bulk data
ˆ ioctl: configurar el dispositivo
32. ¿Que son los Dispositivos?(Cont)
ˆ Podemos clasificar el hard en varios tipos.
ˆ Dispositivos de acceso aleatorio(ej. discos).
ˆ Dispositivos seriales(ej. Mouse, sonido,etc).
ˆ Acorde a esto los drivers se clasifican en:
ˆ Drivers de bloques: son un grupo de bloques de datos
persistentes. Leemos y escribimos de a bloques, generalmente
de 1024 bytes.
ˆ Drivers de car´acter: Se accede de a 1 byte a la vez y 1 byte
s´olo puede ser le´ıdo por ´unica vez.
ˆ Drivers de red: tarjetas ethernet, WIFI, etc.
33. Dispositivos en UNIX
ˆ Major y Minor device number.
ˆ Los dispositivos se dividen en n´umeros llamados major device
number. Ej: los discos SCSI tienen el major number 8.
ˆ Cada dispositivo tiene su minor device number. Ejemplo:
/dev/sda major number 8 y minor number 0
ˆ Con el major y el minor number el kernel identifica un
dispositivo.
ˆ kernel code/linux/Documentation/devices.txt
# l s −l /dev/hda [1 −3]
brw−rw−−−− 1 root d i s k 3 , 1 Abr 9 15:24 /dev/hda1
brw−rw−−−− 1 root d i s k 3 , 2 Abr 9 15:24 /dev/hda2
brw−rw−−−− 1 root d i s k 3 , 3 Abr 9 15:24 /dev/hda3
34. Archivos de dispositivos en UNIX
ˆ Representaci´on de los dispositivos(device files)
ˆ Por convenci´on est´an en el /dev
ˆ Se crean mediante el comando mknod.
mknod[− m<mode >] f i l e [ b | c ] major minor
ˆ b o c: seg´un se trate de dispositivos de caracter o de bloque.
ˆ El minor y el major number lo obtenemos de
kernel code/linux/Documentation/devices.txt
35. Dispositivos en UNIX
ˆ Necesitamos decirle al kernel:
ˆ Que hacer cuando se escribe al device file.
ˆ Que hacer cuando se lee desde el device file..
ˆ Todo esto lo hacemos en un m´odulo.
ˆ La struct file operations:
ˆ Sirve para decirle al kernel como leer y/o escribir al dispositivo.
ˆ Cada variable posee un puntero a las funciones que
implementan las operaciones sobre el dispositivo.
36. ¿Como creamos un driver?
ˆ Mediante la struct file operations especifico que funciones
leen/escriben al dispositivo.
struct file_operations my_driver_fops = {
read: myDriver_read,
write: myDriver_write,
open: myDriver_open,
release: mydriver_release};
ˆ En la funci´on module init registro mi driver.
register_chrdev(major_number, "myDriver", &
my_driver_fops);
ˆ En la funci´on module exit desregistro mi driver.
unregister_chrdev(major_number, "myDriver");
37. ¿Como creamos un driver?(Cont..)
ˆ Operaciones sobre el dispositivo
ˆ Escritura del archivo de dispositivo (Ej. echo ”hi))
/dev/myDeviceFile)
ssize_t myDriver_write(struct file *filp, char
*buf,size_t count, loff_t *f_pos);
ˆ Lectura del archivo de dispositivo (Ej. cat /dev/myDeviceFile)
ssize_t myDriver_read(struct file *filp, char
*buf,size_t count, loff_t *f_pos)
38. ¿Como creamos un driver?(Cont...)
ˆ Par´ametros de las funciones funciones:
ˆ Struct file: Estructura del kernel que representa un archivo
abierto.
ˆ char *buf: El dato a le´ıdo o a escribir desde/hacia el
dispositivo(espacio de usuario)
ˆ size t count: La longitud de buf.
ˆ loff t *f pos count: La posici´on manipulada