Informe de actividad mensual de Haiku - 12/2018


¡Feliz año nuevo! ¡Es 2019 y Haiku sigue vivo!
En primer lugar, es hora de mirar las estadísticas de Haiku y Haikuports . Como puede ver, la actividad para los haikuports sigue creciendo (ahora hay 2 veces más compromisos con los haikuports que con Haiku), y Haiku obtuvo un poco más de compromisos en 2018, después de dos años de actividad históricamente baja. Esperemos que la tendencia continúe y podamos alcanzar los altos niveles de actividad de 2008-2010 algún día.
De todos modos, vamos a ver qué pasó en diciembre. Este informe cubre hrev52616-527xx.

Núcleo

Kallisti5 dio el primer paso muy pequeño hacia un puerto RISC-V. Esta es una nueva arquitectura de CPU sin royalties y sin patentes. Sin embargo, actualmente no hay mucho hardware adecuado para que Haiku lo use, así que esto es más una experimentación con las herramientas de construcción que cualquier otra cosa en este momento.
waddlesplash agregó la aplicación de la protección W ^ X para todas las áreas del kernel, lo que significa que no hay memoria que se pueda escribir y ejecutar al mismo tiempo en el kernel. Tales áreas solo serían útiles para la generación de código en vivo (por ejemplo, motores JIT) y no tenemos nada de eso. Además, si alguien logra obtener un puntero a esa área, puede ser un lugar fácil para inyectar un código y luego ejecutarlo.
waddleplash también agregó un nuevo activador del administrador de recursos bajos cuando el kernel se queda sin espacio de direcciones. El administrador de recursos bajos es una tarea especial que se ejecuta cuando algún recurso es bajo (por ejemplo, la memoria o el espacio de direcciones en un subproceso específico o ahora en el kernel). Intenta liberar algo de memoria que se puede recuperar fácilmente, por ejemplo, vaciando las cachés de escritura en el disco o borrando las cachés de lectura.
También reelaboró ​​la desconexión del descriptor de archivos. Este es un problema más complicado de lo que parece, porque en algunos casos los descriptores de archivos cerrados todavía pueden tener operaciones en él.Por lo tanto, debemos tener cuidado de no liberar las estructuras de datos demasiado pronto, pero también debemos olvidar liberarlas y filtrarlas. Esto ya se volvió a trabajar en 2015, pero la implementación no funcionó en algunos casos.
mmlr arregló una condición de carrera al iniciar un nuevo equipo, que a veces podía llevar a un bloqueo del ejecutable que intentaba hacerlo.
También corrigió los primeros mensajes de arranque, y luego los problemas en la inicialización temprana previnieron el arranque con 64 núcleos de CPU y se bloquearon en algunos casos cuando se usan muchos núcleos de CPU (más de 16 o 32).

Conductores

kallisti5 realizó algunos cambios menores en el manejo de interrupciones para el controlador SDHCI (controlador de tarjeta SD) del trabajo en progreso. Sin embargo, el controlador no está listo para su uso y aún no está incluido en la imagen.
PulkoMandy fusionó de nuevo la compatibilidad con las unidades de disquete USB en el controlador de almacenamiento masivo USB principal. Estos son similares, pero con algunas diferencias que hicieron más fácil experimentar con disquetes en un controlador separado. El nuevo controlador no funciona para disquetes en este momento, pero al menos no entra en pánico como el anterior. Una vez que los disquetes vuelvan a funcionar, el siguiente paso será volver a trabajar ese controlador para usar nuestra pila SCSI genérica, ya que USB en realidad usa un subconjunto de comandos SCSI para el almacenamiento masivo.
waddlesplash continúa manteniendo los controladores de red actualizados con FreeBSD y solucionando errores y problemas a medida que se encuentran. Algunos de los controladores ahora están sincronizados con FreeBSD 12.
tqh actualizó ACPICA (el código estándar para la administración de ACPI que compartimos con otro sistema operativo) a la versión actual, lo que trae muchas correcciones de errores.
waddlesplash corrigió una falta de comprobación de errores en el controlador NTFS, lo que podría provocar un error grave en el sistema en monturas fallidas.

libroot

Korli agregó controles de límite en las implementaciones de retroceso del dispositivo de remolque y del dispositivo de remolque, para evitar que se bloqueen en los datos fuera de rango. Normalmente, la implementación es realizada por la UCI, pero en algunos casos, estamos utilizando una implementación mínima que evita extraer toda la biblioteca de la UCI y su base de datos de configuración regional.
Korli también corrigió el demangler (la pieza de código que convierte los símbolos de C ++ en métodos de lectura o nombres de clase) para devolver el error correcto cuando no se encuentra un parámetro. Esto solo ayudará a obtener el código de error correcto, pero es útil saber qué salió mal.
Korli y waddlesplash también corrigieron un error en el runtime_loader (la aplicación que carga y ejecuta aplicaciones) que ocasionalmente fallaba, y la máquina virtual de Java lo activó fácilmente. Ahora tenemos una implementación de Java de nuevo en funcionamiento.

Limpieza y seguridad

mt estuvo trabajando duro este mes revisando los problemas del análisis de estudio de PVS. PVS studio es un software comercial que realiza análisis de código estático. Hicieron una prueba de sus herramientas en Haiku hace unos años y nos enviaron un informe sin procesar, así como artículos de blog detallados que resaltan algunos de los problemas identificados. Puede echar un vistazo al informe de escaneo y ver cómo las líneas se llenan de color verde a medida que los problemas se revisan y resuelven.
waddlesplash ejecutó la compilación utilizando un clang y corrigió varias advertencias que detectó. También solucionó varios problemas en BDirectory, Installer, Tracker, etc.

app_server

mmlr agregó chequeos de error y corrigió varios lugares donde app_server leía datos grandes a la pila, lo que provocaba desbordamientos de pila.

Kit de aplicación

PulkoMandy agregó una forma de ejecutar un BLooper dentro de un hilo existente. Normalmente, un BLooper genera y controla su propio hilo (creado cuando llama a Run ()). Ya existía un caso especial para la aplicación BA (que toma el control del hilo principal). Este cambio es necesario para simplificar la transferencia de WebKit, que desea crear subprocesos y luego convertirlos en bucles.

Kit de medios

PulkoMandy revirtió algunos cambios en el complemento ffmpeg después de notar que interrumpieron la reproducción de YouTube. Estos cambios se relacionaron con la computación del tiempo de presentación de los cuadros de video decodificados, una información que actualmente no es utilizada por MediaPlayer, lo que hace que sea un poco difícil de probar.
Barrett continúa su trabajo refactorizando la parte de codificación / decodificación del Media Kit. Comenzó a insertar su nuevo marco en BMediaFile, y comenzó a ajustar los códecs (ffmpeg wrapper) para utilizar el nuevo sistema. Esto sigue siendo un trabajo en progreso, pero está llegando y esperemos que ayude a obtener un mejor soporte para la decodificación y codificación de medios.

Kit de red

Peter Kosyh continúa su trabajo en el soporte de IMAP, solucionando algunos bloqueos y bloqueos. Ahora debería ser bastante confiable y utilizable para el correo electrónico diario.
Danc2 solucionó un problema en la administración de preferencias de red que evitaría el uso de configuraciones personalizadas (no DHCP) con múltiples interfaces de red (que son más comunes ahora que admitimos Wi-Fi).Esto fue luego revisado por axeld quien propuso una implementación más correcta.

Kit de interfaz

Gracias a waddlesplash, CenterOnScreen ya no puede dejar la pestaña de la ventana fuera de la pantalla si la ventana es muy alta.
PulkoMandy y waddlesplash modificaron el código del método abreviado en BMenu para manejar mejor los caracteres utf8, solucionando un bloqueo en libroot_debug y permitiendo que BMenu autoasignara los accesos directos, incluso utilizando caracteres no ASCII.

Aplicaciones

Humdinger hizo que el diseño de los encabezados en Correo sea más compacto, por lo que tiene más espacio para el cuerpo del correo. Agregó nuevas consultas preestablecidas para localizar fácilmente los correos con el mismo remitente, asunto o destinatario que el que está abierto actualmente. También corrigió el manejo de HTML escape & szlig ;, que se tradujo accidentalmente a ö. Ahora también es posible editar el asunto de los correos directamente desde el Rastreador (en caso de que el remitente haya olvidado configurar uno).
Humdinger también corrigió a TextSearch para utilizar el editor de código fuente preferido, en lugar de abrir siempre Pe (que se está eliminando gradualmente, ya que Koder obtiene todas las funciones necesarias).
EXL corrigió un error con los hipervínculos en AboutSystem, que intentaban abrir el enlace y abrir el ejecutable / bin / open.
kerwizzy implementó el submuestreo en Mandelbrot, para una apariencia más lenta pero más agradable.
Owenca corrigió un bucle infinito en Mail al intentar encontrar las URL en un mensaje.
Andrew Lindesay continúa su trabajo en HaikuDepot, revisando partes del código de red para que sea más rápido y más confiable. También permite obtener una barra de progreso para la carga inicial de la aplicación, cuando toda la información de la aplicación se descarga desde el servidor de depósito.
Rajagopalan-Gangadharan agregó un botón "navegar" a la configuración de WebPositive para cambiar fácilmente la ubicación de la descarga usando un panel de archivos.
mmlr arregló un caso de uso después de la instalación gratuita.

Por: Pulko Mandy
Hora de Libertad

Post a Comment

Previous Post Next Post