Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Mensagens - Nosferatu Arucard

Páginas: [1] 2 3 ... 7
1
Actualmente o rpcs3 está disponível como um pacote AppImage, o que torna o uso muito simples.
Basta transferir do site, e marcar o pacote como executável.

Depois o emulador deverá funcionar sem maiores problemas.

2
Enquanto o sucessor do X Window Server andou por entre o Mir, o Wayland e derivados, no ano passado, foi relevado um display server, igualmente open-source, que pretendia ser originalmente um Servidor Gráfico
mais optimizado para aplicações gráficas, em ecrã cheio (full screen), e com acesso de baixo nível ao hardware gráfico, e que depois foi ampliado para suportar os elementos básicos de um interface gráfica.

Com isso nasceu o Arcan Display Server, disponível para Linux, FreeBSD e Windows (!)

https://arcan-fe.com/

https://github.com/letoram/arcan

A grande diferença entre o Mir/Wayland e até o X comparado com o Arcan, é que a sua arquitectura é muito mais similar ao servidor gráfico do sistema operativo Orbis (PS4) ou da versão do Windows 10 que opera na Xbox One, do qual, os seus elementos primitivos são os streams da GPU, e a sua renderização
 é feita exclusivamente pela GPU usando o motor gráfico (Arcan Display Engine) do Arcan.

Posteriormente, na altura que o projecto foi lançado ao público, foi criado um pequeno sistema de janelas, escrita em linguagem Lua, designado por Durban, como demonstração para além de programas, como jogos, a correr via SDL modificada para usar directamente o Arcan
Display Engine...

Actualmente, o Arcan está a ser ampliado para que o Arcan Composer (que gere, por compatibilidade, os elementos primitivos das janelas e eventos, implementados sobre o Arcan Display Engine) emule o protocolo Wayland e X Window Server,
 que actualmente está parcialmente funcional.

A ideia do autor deste projecto é que sistemas de interface gráfica como o XFCE, o Debian e companhia que usem o protocolo Wayland, funcionem sem necessidade de mudar uma única linha de código. Bibliotecas como o SDL, Vulkan e afins podem usar o Wayland, para comunicar com
o Arcan Composer, mas para acesso de baixo nível ao hardware, devem usar as versões Vulkan e SDL modificadas para operar no Arca Display Engine...

Ora isso é exactamente o que acontece no sistema Orbis da PS4. Existe uma API de alto nível mais adequado para programas com janelas e eventos, e depois uma API de baixo nível mais adequado para um jogo operar em exclusivo no monitor, comunicando quase directamente ao hardware.

Seria interessante se a Canonical tivesse sondado o programador do Arcan, pois neste caso em vez de terem criado o Mir, teriam usado o Arcan para o UNity/Xfce/etc, e depois com o aparecerimento da Steam, podiam usar a funcionalidade de baixo nível para os jogos,
implementando um Game Mode do qual o jogo teria acesso directo (na realidade via API low-level) ao hardware gráfico local, evitando os overheads do X/Wayland/Mir...

3
Pequena actualização...

As dependências para a compilação foram descritas no post anterior, portanto não vou repetir o procedimento.

Para compilar sem problemas, dado que foi corrigido o bug indicado anteriormente, dev fazer:

$ git clone https://github.com/RPCS3/rpcs3.git
$ cd rpcs3
$ git submodule update --init
$ cmake CMakeList.txt
$ make GitVersion
$ make

O programa fica guardado em...
../bin/rpcs3

Agora temos que instalar o sistema operativo da PS3 no computador...
Para tal, transfira o pacote do site oficial da Sony, e dentro do emulador, use a opção Tools>Install Firmware
Com isso, o emulador estará operacional...

4
Continuação das Instruções...

Prevê-se que dentro de poucas semanas vários dos branches do projecto Darling sejam unidos, dado que certos executáveis como o ruby para Mac OS X deve ser compilado como um executável mach-O nativo.
Isto significa que o AppKit e o Mach-O library deverão substituir o main branch, o que tornaria a maioria dos utilitários do Darling, de modo a substituir os executáveis ELF nativos para os Mach-O nativos do OS X.

Mas por agora, resta explicar como se instala o suporte de 32-bit (Mas não vai funcionar num sistema Ubuntu de 32-bit, pois não é suportado!), se bem que poucos programas para a plataforma Mac OS X existam para 32-bit-

Primeiro acrescente os pacotes de compatibilidade de 32-bit...

$ sudo apt-get install libc6-dev-i386 libudev-dev:i386 lib32stdc++-4.9-dev

E o resto é fácil de prosseguir...

cd darling
mkdir -p build/i386
cd build/i386
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86.cmake -DFRAMEWORK_COREAUDIO=ON -DFRAMEWORK_APPKIT=1
make
sudo make install

O módulo de kernel é de apenas 64-bit, portanto não é necessário recompilar.

Programas PowerPC não são suportadas, embora os devs do Darling já aceitaram a sugestão como "enhancement", e isso só exigiria criar um Toolchain com as bibliotecas para a Arquitectura PowerPC, e instalar o qemu-ppc-static para funcionar.

Guia do Utilizador (alpha...)

Para iniciar o Darling, deve primeiro activar o módulo de kernel, pelo menos uma vez por login:
$ sudo modprobe darling-mach
$ sudo chmod a+rw /dev/mach

Por fim, inicie o Darling, que carrega a versão nativa do Mac OS X do bash:
$ darling shell

Após experimentar vários comandos que já encontra no Linux, no Darling (uns funcionais, outros desactivados/inexistentes/disfuncionais...), deve ter em conta que a directoria ~/.darling é interpretada dentro do OS X virtual como a root virtual.
Ao contrário do Wine, as associações entre directorias virtuais são idênticas aos sistemas Unix, pois podemos usar links simbólicos e usar os mesmos métodos e truques.
O suporte a programas com Interface Gráfica é experimental, pois os compiladores tendem a usar o framework Carbon que não foi ainda implementado, em vez de usar o AppKit "puro", e isso falha a sua execução no Darling.

É possível instalar o XCode no Darling, mas ficará limitado aos compiladores que operam na linha de comando...
(Alternativamente, pode instalar o Clang e o osx-cross com o XCode que cria os cross-compilers nativos para Linux, caso queira criar um ambiente de teste com programas simples, para depois testá-los no Darling. A última opção é mais segura.)

Ainda assim, o Darling implementou clones de dois programas exclusivos do Mac OS X: o installer e o hdiutil, que são versões muitos simplificadas do original...

Usando o Firefox (para Linux nativo, claro!), pode visitar o Rudix ou o MacPorts, e instalar (manualmente) vários pacotes PKG, que são para os sistemas BSD, os DEB para o Ubuntu e derivados.

Assumindo que possui o bash do Darling na directoria de Transferências, para instalar um pacote, faça:
$ installer -pkg <pacote> -target /
E depois digite o comando do programa.

Se tiver programas com problemas como não encontrar biblioteca x.so ou x.dylib, basta adicionar à variável de sistema DYLD_LIBRARY_PATH ou DYLD_FALLBACK_LIBRARY_PATH, a directoria correspondente.

Usando o hdiutil pode agregar imagens DMG, do qual utiliza o FUSE, e ficam montados em /Volumes.
$ hdiutil attach <image>
$ cd /Volumes/<image>

Como podem notar, a barreira de recriar um sistema BSD em Linux é muito menor que um sistema Windows.

5
Instruções actualizadas!

O darling é um programa que exige uma dose de aventura para instalar, porque está em desenvolvimento activo, e por vezes pode mudar do nada as dependências para a instalação!

Por agora, a única forma realista para instalar este programa é através da compilação e instalação à unha, como nos bons e velhos tempos do Linux...


Para instalar como pelo menos o suporte alpha às aplicações com interface gráfica do Mac OS X (Ainda não pensem algo mais complicado que uma simples janela de pop-up!), e suporte áudio, deve ter a versão de 64-bit do Ubuntu.
Por vezes, usar uma versão LTS ajuda, mas se usar o 16.10, terá que aplicar alguns hacks, porque os autores ainda não actualizaram os scripts de compilação.

Antes de tudo, instale os pacotes:
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libxml2-dev libicu-dev libssl-dev libbz2-dev zlib1g-dev libudev-dev linux-headers-generic libaspell-dev libpulse-dev libasound2-dev libavresample-dev libavformat-dev libavcodec-dev libpng-dev libjpg-dev libcairo-dev

Pois o projecto Darling utiliza o compilador Clang em vez do GCC.

Agora clone o branch Appkit, usando o git:
git clone -b appkit --recursive https://github.com/darlinghq/darling.git
(Vai demorar um bom bocado!)

Depois aplique os seguintes comandos no Terminal

cd darling
mkdir -p build/x86-64
cd build/x86-64
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86_64.cmake -DFRAMEWORK_COREAUDIO=ON -DFRAMEWORK_APPKIT=1
make
sudo make install

A compilação vai demorar um bom bocado, e mesmo que tenha o computador saído do forno, aguarde alguns minutos...

Ainda assim, como no meu caso, pode necessitar de corrigir os seguintes symlinks no código-fonte.
ln -s /usr/include/pngconf.h pngconf.h
ln -s /usr/include/pnglibconf.h pnglibconf.h
Nos directórios: ./darling/src/external/AppKit/Headers/Native e ./darling/src/external/CoreGraphics/Headers/Native

Por fim edite os ficheiros CMake.txt em ./darling/src/external/AppKit e ./darling/src/external/CoreGraphics
para trocar a linha:
target_link_libraries(AppKit CFF system ApplicationServices png12 aspell gif tiff jpeg X11 Xext Xrender fontconfig cairo)
por...
target_link_libraries(AppKit CFF system ApplicationServices png16 aspell gif tiff jpeg X11 Xext Xrender fontconfig cairo)

(Que é trocar a biblioteca png1.2 por png1.6, que não afecta o funcionamento do programa...)

Feito a compilação, e instalado o programa, falta compilar o módulo de kernel que emula o Mach:

cd ../../src/lkm
sudo ./dkms.sh

Por fim, instale o módulo, que deve ser feito cada vez que inicie sessão:

$ sudo modprobe darling-mach
$ sudo chmod a+rw /dev/mach

Agora, só falta iniciar o Mac OS X "virtual":
$ darling shell

Darling [/]$
Que é não é mais que um port do bash para Mac OS X a correr sobre o Ubuntu !!!

A instalação base cria um DPREFIX em ~/.darling, que contêm os ficheiros de sistema, incluindo vários ports de programas conhecidos no Ubuntu como o python, man, cp, ...
E também versões simplificadas do installer e hdiutil.

Podemos conferir a versão emulada pelo Darling
$ uname -a
Darwin hellsing 12.0.0 Darwin Kernel Version 12.0.0 x86_64

Os comandos internos são programas Linux nativos, pois por exemplo, o python:
$ file /usr/bin/python
/usr/bin/python: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped


Indo ao site rudix, e transferindo a versão 10.12 do p7zip, podemos correr este compressor sem problemas.
E podemos ver que é um executável OS X nativo, pois:
$ file `which 7z`
Darling [~/Transferências]$ file `which 7z`
/usr/local/bin/7z: Mach-O 64-bit executable x86_64

E por agora termino aqui...

6
Após alguns anos de desenvolvimento, o rpcs3 pode ser testado com maior ou menor dificuldade, embora deva ter em atenção que:
- Não explicarei como obter os jogos.
- Exige um computador bastante potente para conseguir emular uma PS3.

Pré-requistos:
- A última versão do Ubuntu 16.10, versão 64-bits (Devido ao uso do clang e LLVM)
- Um computador com Intel Core i5 ou i7 arquitectura Haswell or Skylake. (Para ser minimamente realista)
- Entre 8 a 16 Gb de RAM
- Uma GPU NVidia série 900 ou 1000, ou AMD equivalente com suporte nativo por hardware do OpenGL 4.4 ou Vulkan (recomendadíssimo)
- Recomenda-se a instalação dos drivers das GPU com suporte ao Vulkan API
- Deve ter pelo menos entre 10 a 50 GB de espaço em disco livre para cada jogo da PS3, que quer instalar.
- Para ser legal o uso, uma drive BD-ROM que leia os discos da PS3  ;) (recomenda-se o modelo LG BD-RE WH16NS40. ) e evite a tentação de usar cópias piratas...  >:(

Tendo pronto a máquina pronto a funcionar, instale primeiro as dependências:

$ sudo apt-get install cmake git build-essential libopenal-dev libwxgtk3.0-dev libglew-dev zlib1g-dev libedit-dev libvulkan-dev llvm-dev

Clone o git do emulador

$ git clone https://github.com/RPCS3/rpcs3.git
$ cd rpcs3
$ git submodule update --init

// Atenção! Devido a um bug nos pacotes clang, é encessário escrever o seguinte ficheiro
++++++++++++++++++++++++++++++++++++

// This is a generated file.
 
#define RPCS3_GIT_VERSION "unknown"
 
// If you don't want this file to update/recompile, change to 1.
#define RPCS3_GIT_VERSION_NO_UPDATE 1

+++++++++++++++++++++++++++++++++++

E salvá-lo como "git-version.h", em rpcs3/rpcs3/git.version.h

Por fim, só resta compilar...

$ cmake CMakeLists.txt
$ make

Se tudo correr bem  :), o executável fica guardado em...
rpcs3/bin/rpcs3

Que fica no directório raíz do disco rígido emulado da PS3 (deve ter os directórios dev_flash, dev_hdd0, dev_hdd1,... presentes.)

- Depois fica tudo por vossa conta...  :)

7
Actualmente estou envolvido num programa de análise numérica em Física Nuclear que poderá ser open-source assim que estiver mais ou menos pronto.
O programa que implementei utiliza o wxWidgets para facilitar a compilação de versões nativas para Linux, Windows e Mac OS X.
Excepto o plug-in wxMathPlot para gerar os gráficos de rendimentos, optei por implementar várias funções para a leitura e escrita de ficheiros de dados em formato texto (LabView, Ibandl, etc...), para o cálculo de rendimentos, etc...

Entretanto experimentei num tablet com o programa Termux (que é um emulador de Terminal para Android que suporta pacotes externos, a imitar o Ubuntu), compilar o RunCPM e correr nele...
De facto é possível, mas exigiu modificar uma linha do makefile para compilar.

Primeiro tinha que instalar os seguintes pacotes:
$ apt install clang make ncurses-dev libandroid-glob-dev git
$ cd /data/data/com.termux/files/home

Depois era só clonar o git e compilar:
$ git clone https://github.com/MockbaTheBorg/RunCPM.git
$ cd RunCPM/RunCPM

Editar uma linha do makefile:
$ apt install nano
$ nano Makefile.posix
E mudar a linha
LDFLAGS = -lncurses
para:
LDFLAGS = -lncurses -landroid-glob
E salvá-lo com outro nome, como Makefile.android

Por fim, compila e executa sem problemas:
$ make -f Makefile.android
$ mkdir /data/data/com.termux/files/home/cpm
$ mkdir /data/data/com.termux/files/home/cpm/A
$ mkdir /data/data/com.termux/files/home/cpm/A/0
$ mv RunCPM /data/data/com.termux/files/home/cpm

E copiar os ficheiros de sistema CP/M para os locais certos.
$ cp /data/data/com.termux/files/home/RunCPM/DISK/A.ZIP  /data/data/com.termux/files/home/cpm/A/0
$ cp /data/data/com.termux/files/home/RunCPM/CCP/*  /data/data/com.termux/files/home/cpm
$ cd /data/data/com.termux/files/home/cpm/A/0
$ unzip A.ZIP
$ rm A.ZIP
(O comando unzip é intrínseco ao busybox)

Depois desses passos, basta correr o emulador sem grandes problemas:
$ cd /data/data/com.termux/files/home/cpm
$ ./RunCPM

E a partir daí temos a linha de comando do CP/M num tablet Android...
- Se puder usar o comando exit, retorna à shell busybox, senão terá que fechar a aplicação Termux.

8
Encontrei durante as minhas pesquisas um projecto activo para um emulador de um sistema operativo de 8-bit (!) que teve sucesso na transição da década de 1970 para a de 1980: o CP/M da Digital Research

Tratou-se do primeiro sistema operativo genérico para a maioria dos computadores pessoais de 8-bit, até que o padrão IBM-PC (de 16-bit) tomou o mercado, e o sistema acabou por se extingir após 1983, embora até 1985 ainda eram lançados softwares para ele.

O Digital Research acabaria por criar uma versão de 16-bit do CP/M (designado CP/M-86) que não teve grande sucesso, mas acabaria por se tornar a base do DR-DOS que era mais ou menos compatível com o MS-DOS original.

Além disso só funcionava com o processador Intel 8080 ou 8085, mas também com o Zilog Z80 (o mesmo que o ZX Spectrum ou o TK 85), ou com o Nec V20 e V30.

O CP/M e o MS-DOS possuem características comuns, como a designação de drives por letras, o padrão 8.3 para os nomes e extensões dos ficheiros, e o sistema operativo ser constituído por três módulos: o módulo do kernel (BIOS, similar ao msdos.sys), o módulo I/O (BDOS, similar ao io.sys) e o interpretador de comandos (CPM, similar ao command.com).

O emulador pode ser obtido através deste site:
https://github.com/MockbaTheBorg/RunCPM

E deve ter pelo menos instalado o compilador gcc e o pacote base de bibliotecas (o CP/M por si só não suportava gráficos, e somente exige a biblioteca ncurses em sistemas POSIX como o Linux ou o Mac OS X)

Portanto basta clonar o git:
$ git clone https://github.com/MockbaTheBorg/RunCPM.git
$ cd RunCPM\RunCPM

E compilar:
$ makefile -f Makefile.posix

Agora crie uma pasta para o CPM (mkdir ~/cpm)
Depois crie uma pasta dentro do cpm com o nome A (mkdir A), e depois dentro da pasta A, crie uma com o nome 0 (mkdir 0).
Isto cria um drive A virtual com o selector USER 0 (uma das características bizarras deste sistema operativo era criar sub-partições (até 16) para cada uma dos 16 drivers possíveis (de A a P)

Agora copia o novo executável RunCPM para a directoria "cpm", e depois o conteúdo da pasta ./RunCPM/CCP para a mesma directoria do executável (é a implementação de terceiros da shell de comandos do CP/M 2.2).
Por fim, copie o ficheiro A.zip de ./RunCPM/DISK para a pasta ~/cpm/A/0 e depois descompacte aí (pode apagar o zipfile depois).

Para operar o programa abra a janela de Terminal, navege para a pasta ~/cpm e digite:
$ ./RunCPM

Se tudo correr bem, é iniciado um emulador Zilog Z80 e mostra a prompt de comando:
A>

Digite dir, e deve mostar algo do género:

CP/M 2.2 Emulator v2.7 by Marcelo Dantas
      Build Sep 22 2016 - 23:14:16
-----------------------------------------
CCP: CCP-DR.BIN Loaded at 0xf400

RunCPM Version 2.7 (CP/M 2.2 64K)

A>dir
A: 1STREAD  ME  : ASM      COM : BDOS     ASM : BDOS     SUB
A: BDOSEQU  LIB : CCP-DR   BIN : CCP-ZCPR BIN : CCP      ASM
A: CCP      SUB : CLEAN    SUB : DDT      COM : DISKDEF  LIB
A: DISPLAY  LIB : DUMP     ASM : ED       COM : EXIT     ASM
A: EXIT     COM : EXIT     SUB : EXIT     Z80 : LOAD     COM
A: LU       COM : MAC      COM : MBASIC   COM : MLOAD    ASM
A: MLOAD    COM : MLOAD    DOC : MOVCPM   COM : OPCODES  TXT
A: PIP      COM : RSTAT    COM : RSTAT    SUB : RSTAT    Z80
A: STAT     COM : SUBMIT   COM : SYSGEN   COM : TE       COM
A: UNARC    COM : UNCR     COM : USQ      COM : XSUB     COM
A: Z80ASM   COM : Z80ASM   PDF : ZCPR     ASM : ZCPR     SUB
A: ZCPRHDR  LIB : ZEXALL   COM : ZEXDOC   COM : ZSID     COM
A: ZTRAN    COM
A>

Em seguida invoque "exit"
A>exit

Para retornar ao bash.

E com isso pode correr os programas dignos da arqueologia informática como o MBASIC ou o SuperCalc (!). Evidentemente, que se quer aceder a disquetes de 8 polegadas no Linux, isso já é outro problema totalmente diferente.

9
O ambicioso projecto de implementar uma biblioteca de compatibilidade capaz de correr programas do sistema operativo Mac OS X atingiu por fim, o seu primeiro milestone: Um dos seus principais componentes alcançou a primeira versão estável. O resto ainda é experimental e foi severamente re-escrito nos últimos meses.

De acordo com o site oficial http://www.darlinghq.org, os primeiros protótipos do programa responsável pelo carregamento da aplicação (loader) nunca seria minimamente viável por este se limitar a traduzir os símbolos dos executáveis Mach-O para os equivalente do glibc. Era mais problemas que apareciam do que resolvia. (O Wine também acabaria por adoptar a sua biblioteca-base para resolver o mesmo problema).
 Por isso, separou o projecto do darling-loader do darling-libsystem, ocupando por implementar o último com maior prioridade.
(Para maior detalhe, ver http://www.darlinghq.org/news/rethinking-the-libsystem-approach).
O libsystem do OS X é responsável pelas definições básicas dos executáveis deste sistema operativo e contêm um fork do libc, um libkvm responsável pela manipulação de dados do kernel, uma biblioteca matemática libm, um fork do libpthread e ainda a exclusividade do libinfo (NetInfo).
Ainda assim, o código-fonte deste componente essencial é totalmente open-source  :o, visto que é igualmente usado no Darwin (Que é Open-Source).

Outro elemento que alcançou a primeira versão utilizável foi o darling-dmg que é um programa que monta ficheiros DMG com o sistema de ficheiros HFS+, utilizando o FUSE.
Por si só, não têm grande utilidade prática, pois seria interessante se o componente responsável pela instalação de pacotes PKG (darling-installer) tivesse igualmente operacional, o que não é (ainda) o caso.

Por agora, o foco do projecto está em implementar a base da bibliotecas-base, deixando ainda meio parado a implementação dos frameworks do Carbon e Cocoa API. Ainda falta um bom bocado para vermos o AutoCad para Mac correr no Ubuntu  ;D
Para não falar das ideias do suporte dos antigos programas compilados para a Arquitectura PowerPC, que o autor do projecto considera não ser uma prioridade minimamente realista.

10
Por hora foram implementados mais funções do d3d10core.dll no Wine 1.7.39, mas ainda o suporte a jogos que usam exclusivamente o DirectX 10 é experimental.
Para produtoras que usam o código-fonte, portar é actualmente possível, o jogo "Bioshock Infinity" que o diga!

Agora, o Wine Staging 1.7.39 para além dos patches e melhorias do costume, também acrescentou outra funcionalidade importante: Uma gestão inteligente das chamadas de sistema do WineServer, evitando o quando possível para operações triviais que acabam por ter uma quebra de performance grave. No entanto só vai funcionar com kernels superiores à versão 3.17...  ::)

11
Os autores deste projecto optaram por encerrar o seu desenvolvimento, mas publicaram todas as especificações e guias de software para a plataforma. O motivo principal é que a maioria dos países desenvolvidos não aceitariam uma máquina com Linux a correr nos exames do liceu e faculdade, especialmente por causa da obrigatoriedade de ter um modo de segurança no modo exame  >:(.
Isto significa que basta ter um pouco de imaginação e alguns recursos para criar a sua calculadora de sonho...  ;D
(Se bem que um Rapsberry Pi seria talvez o mais adequado para uma geringonça dessas.)

No entanto não deve faltar muito para que os tablets acabem por ter uso nos exames, e as calculadoras acabem por ser uma peça de museu a curto prazo.  :)

12
Café com Ubuntu / LibreCalc: Uma Calculadora com hardware e software livre
« Online: 14 de MAR?O de 2015, 13:28 »
Embora os smartphones e tablets Android e/ou iOS já atiraram as calculadoras dedicadas para a extinção, ou resguardadas para usos muito restritos (a curto prazo) devidos às regras de uso em exames, isto não impediu que dois professores franceses arriscassem a projectar e lançar o protótipo de uma calculadora gráfica usando estritamente software livre.  ;D

http://www.librecalc.com/

Na realidade não foi a primeira tentativa, mas muitas delas nem passaram de uma ideia infrutífera. O que destinge neste caso é que conseguiram criar um protótipo funcional e algum software testável  ::)

Internamente, o LibreCalc é um mini-tablet com ecrã LCD de 3" a cores, com um teclado customizado, duas portas mini-USB, controlado por um processador com potência similar aos primeiros smartphones Android (2008 ;D).
A CPU escolhida foi o i-MX233 com um clock de 454 MHz com suportes a interfaces LCD, RAM e Flash ROM.
O total de RAM é de 128 Mb (2 chips de 64 cada um), e cerca de 256 Mb de Flash ROM (Os protótipos usam um SD card para o software).

Quanto ao software a escolha foi o sistema operativo Linux  :D, embora utilizando nos primeiros estágios a distro Debian Wheezy. O bootloader escolhido foi o U-Boot configurado de forma a dispensar o uso do initramfs.
Futuramente, poderão usar um Linux From Scratch para minimizar o espaço ocupado pelo sistema operativo na memória interna da calculadora. (O uso do Linux era mais que justificado, por já operar com o hardware sem precisar de modificar nada, excepto três patches para o LCD, teclado e chipset embutidos no kernel.)
De qualquer forma, o GNU C compiler e o Python estarão presentes na distro minimalista do LibreCalc, como se verifica nos vídeos publicados no site do projecto.  ;)
Uma das decisões dos autores do projecto foi a dispensa do X11 Window Server na calculadora, por considerar um exagero uma máquina embebida de baixa capacidade computacional arcar com um sistema gráfico típico de um computador pessoal. Além disso o seu uso final não recomendava o uso do XFCE ou do Unity numa máquina tão fraca.
 Portanto, usaram o DirectFB por ser minimalista e simples (um simples driver de frame-buffer gráfico!) e ser suportado pela biblioteca SDL, por este dispensar o uso do X11 e ter um front-end para o DirectFB.

 Resumindo, todo o software do Librecalc que utilize gráficos utilizará o SDL, o que acabará por compensar em muitos aspectos, embora a ausência de toolkits e frameworks (dependentes do X11, Mir, Wayland, etc) seja atenuada com o facto das dimensões reduzidas do ecrã, pois todos os programas irão correr em ecrã-cheio. O Python para programas gráficos também pode usar exclusivamente o SDL, eliminando as dependências do X11.
 O software de cálculo simbólico escolhido como base foi o venerável Maxima (Escrito em LISP  :o), e as poucas e reais dependências com gráficos podem ser satisfeitas com o  SDL, e é aí que os dois autores do LibreCalc estão a trabalhar neste quesito. (Pelo menos alguma coisa realmente nova, e não um patchset de algo existente).
 Por decisão própria dos professores, também criaram como teste, o seu primeiro programa verdadeiramente autónomo que funciona dentro da mini-distro Linux do LibreCalc, que é um simulador da TI-83.
 Na verdade é uma implementação vis-a-vis do funcionamento do software da calculadora TI-83 de alto nível, pois limitaram a imitar superficialmente os menus e operações da verdadeira calculadora, mas não suporta Aplicações e Programas escritos em Z80 Assembly, tão-pouco certas opções avançadas não estão presentes. A vantagem é que lê e escreve os ficheiros 83p contendo os programas escritos em TI-Basic, desde que não contenha comandos não-suportados.
 Também suporta algumas funções de ploting gráfico e o uso como calculadora científica normal.
 Este programa pode ser compilado e testado num computador, bastando ter o pacote libsdl1.2-dev (usa apenas o SDL), se bem que o layout do teclado possa dar problemas (foi já pensado no teclado LibreCalc e isto está hard-coded) como uso sério.
 Escusado será dizer que a Linha de Comandos está sempre disponível, e contêm ainda alguns comandos básicos. Provavelmente, a prazo, restringirão as versões básicas contidas na busybox, por estas serem mais que suficientes para inicializar o sistema operativo, carregar o shell em SDL e gerir os scripts de arranque, para abrir o menu de utilizador e usufruir do sistema.

 Em geral, com estas escolhas, mesmo com uma CPU igual a um Pentium II low-end  ;D, o sistema operativo Linux arranca em apenas dois segundos, e demora mais dois para abrir o menu principal (3 a 4 segundos), o que já é bem satisfatório, comparado com os 45 segundos que uma Ti-Nspire demora a fazer um full-boot ou 3 segundos que uma Casio ClassPad demora a fazer.

13
Novidades das versões 1.7.37 e 1.7.38: Foram integrados os projectos meios perdidos que implementaram o Job Object API, presente desde o Windows 2000  mas  ausente no Wine em 2015... >:(
E também foi introduzido o suporte inicial ao DirectX Video Acceleration 2 API (DXVA2), que exige a instalação das bibliotecas nativas do VAAPI. Em GPU Intel isso é fácil, mas para AMD e NVidia exige a instalação de wrappers.
Isto permite o processamento do vídeo pela GPU, embora fosse uma das extensões previstas pelo projecto Pipelight (Um meta-plugin para Firefox nativo para poder usar plug-ins Windows via Wine).
Conjuntamente, espera-se que a versão 1.7.39 tenha por fim novidades no DirectX 10 e 11, já que o wrapper DX10/11 já está a ser implementado nos últimos dias no código do Wine com elevada rapidez.  :o

14
Instale os drivers da NVidia e caso continue a indicar um valor incorrecto para a memória de vídeo tente abrir a opção do PlayonLinux relativa à configuração e na aba "Mostrar" em Configuração, escolha um tamanho adequado para a "Memória Gráfica".
Isto ocorre devido a uma falha na determinação da quantidade de memória gráfica.

15
Jogos e Diversão / Re: Update: Como testar o Wine com CSMT (Wine - Staging)
« Online: 09 de Fevereiro de 2015, 14:38 »
Um pequeno update para avisar que na versão 1.7.36 foram actualizadas os wrappers para o NVidia CUDA 7.0, suporte ao Nvidia Encoder 5, melhorias no PsyhX, e ainda a habitual melhoria de funcionalidades.
Foi integrada melhorias no suporte de som multicanal (exportação da versão padrão), com a introdução de novas opções de configuração no Wine Config  ::)
A única coisa verdadeiramente nova (E é incrível como conseguem fazer isso num salto de versão) é a implementação do framework ThreadPool API que foi introduzida no Windows Vista  ;D.
Esta funcionalidade permite que programas e jogos no modo Windows Vista, 7 ou 8 tenham uma melhor optimização de gestão de procedimentos em multithreading deixando o sistema operativo gerir as prioridades de cada um.

Páginas: [1] 2 3 ... 7