What's New: Difference between revisions

From KolibriOS wiki
Jump to navigation Jump to search
m (Add a link to corresponding board thread.)
No edit summary
Line 140: Line 140:


### New
### New
* RasterWorks: Draw UTF8 text into buffer
* RasterWorks: Draw text in image buffer, with lots of parameters
* proclib: Library of common system procedures
* proclib: Library of common system procedures
* buf2d: 2D raster drawing library
* buf2d: 2D raster drawing library

Revision as of 09:29, 14 October 2019

The fact is that Last_changes approach doesn't work anymore, i.e. authors don't document their changes themselves.

Below is the list of changes from the release 0.7.7.0 (r1319) to r7696.
Each commit message since r1319 has been read and considered.
There definitely are things that are left untold in the commit messages or not understood by the initial log writer.

The text is in commonmark format.
Its structure can be discussed, its contents are to be updated.
Go ahead.

Board thread.

KolibriOS 0.0.0.0 Release Notes
===============================


Kernel
------

* New network stack
    + BSD sockets compatible
    + Blocking and non-blocking sockets
    + IPC sockets
* New block subsystem
    + Support PnP (plug and play) devices
    + Add 64-bit multi-sector disk cache interface
    + Support sector sizes other than 512 bytes
* File systems
    + Ext2 support (read/write), Ext3 and Ext4 (read only)
    + Limited NTFS writing support
    + Unicode compatible API
* Support drivers in PE format with optionally stripped header
* Support priorities in scheduler
* Allow creating kernel threads
* Support APIC, HPET
* Support global TLB pages
* Enable write-combining framebuffer, reconfigure MTRRs after BIOS
* Add Linux-like kernel mutexes
* Add futexes, fast user-space locks
* Detect CPU count
* Boot speedup
* Heap
    + New allocator for block descriptors
    + Hash table for memory descriptors
* Support 16-bit video modes
* System fonts
    + Scaling up X times
    + Smoothing optinally
    + Unicode compatible API
    + Include default fonts to kernel binary
* New mouse pointer drawing algorithm, no blinking even without HW cursor
* Tunable non-linear mouse pointer acceleration
* New application events for network subsystem (link changed, ip changed, etc.)
* Do not send mouse events
    + When user is dragging or resizing a window
    + To inactive windows
    + If mouse cursor is outside window
* Extend button IDs from 16 to 24 bits
* Do not maximize windows of unresizeable styles
* Protect thread from external terminate while running syscalls except 5, 10, 23
* Allow high-priority threads to wake up after any IRQ, not just timer
* Increase debug board buffer from 4K to 64K
* Introduce coding style guide, force it with a pre-commit hook
* Improve and translate documentation

### Syscalls
* Sysfn 15.8: Get last background draw rectangle
* Sysfn 15.9: Redraw rectangular part of background
* Sysfn 18.1: Make the window inactive
* Sysfn 18.19.2/3: Get/set mouse acceleration
* Sysfn 18.19.6/7: Get/set double click delay
* Sysfn 18.23: Minimize all windows
* Sysfn 18.24: Set screen size
* Sysfn 18.25: Set window above/below all
* Sysfn 25: Put image area on the background layer
* Sysfn 26.10: Get time from boot in nanoseconds
* Sysfn 30.3: Mount additional system directory
* Sysfn 34: Get PID of the pixel owner on the screen
* Sysfn 37.3: Get state of mouse buttons
* Sysfn 48.11/12: Get/set default fonts size
* Sysfn 49: Work with Advanced Power Management (APM)
* Sysfn 54: Clipboard interface
* Sysfn 68.26: Release memory pages
* Sysfn 70.5: Get partition info
* Sysfn 73: Blit bitmap
* Sysfn 77: Fast user-space locking
* Sysfn 4: Text output
    + Redirect text output to offscreen buffer
* Sysfn 65: Bitmap output
    + Support grayscale images
* Sysfn 9: Information on execution thread
    + Report event mask
    + Report keyboard mode


Drivers
-------

### New
* USB drivers
    + USB1.1 (UHCI, OHCI), USB2.0 (EHCI)
    + USB hubs
    + USB HID devices (keyboard, mouse, tablet, etc.)
    + USB storage devices
    + usbftdi: FIXME
* Ethernet drivers
    + 3Com 3c59x, DEC dec21x4x, Myson mtd891 / Surecom ep320x, RDC R6040,
      SIS900, VIA Rhine, Forcedeth FIXME compare 0770
* Audio drivers
    + ForteMedia fm801, VIA vt823x, Creative emu10k1x, Intel HD Audio
    + Automatically detect and load proper audio driver
* Video drivers
    + vidintel: LVDS non-VGA modesetter for Intel videocards
    + vidrdc: Modesetter and hardware cursors for RDC M201x cards
    + vmwgfx: VMware SVGA II driver
    + i915: Port of Intel video card driver from Linux
* Storage
    + Support LBA28, PIO and DMA LBA48 for HDD
    + SATA in IDE mode support for HDD and ATAPI
    + AHCI read-only driver
    + tmpdisk: Memory-based disks
* cardbus: CardBUS driver FIXME
* devman: Scan ACPI bus and create device tree, detect IRQs
* acpica: Port of ACPI Componenet Architecture library

### Update
* All drivers are converted to PE format
* All network drivers are updated to work with the new BSD compatible stack
* ATIKMS: AMD/ATI video card driver with 3D and video decoding acceleration
    + Update to Linux 4.4.30 upstream source and microcode
* Infinity: Audio subsystem
    + Get high resolution stream timestamp
* COM mouse driver
    + Add support for third button


Libraries
---------

### New
* RasterWorks: Draw text in image buffer, with lots of parameters
* proclib: Library of common system procedures
* buf2d: 2D raster drawing library
* vector: 2D vector drawing library
* crypt_des: DES crypting library
* libcrash: Library of cryptographic hash functions (md4-5, sha1-2-3)
* iconv: Convert text encodings
* http: HTTP library
* exif: Extract EXIF metadata
* msgbox: message box library
* C_layer: Collection of C wrappers around system libraries
* newlib: Port of RedHat implementation of standard C library
* libstdc++: Port of standard C++ library
* ffmpeg: Port of famous multimedia framework
* pixman: Port of low-level pixel manipulation library
* cairo: Port of 2D vector graphics library
* zlib: Port of data compression library
* libpng: Port of reference PNG library
* Mesa: Port of free OpenGL implementation library
* Gallium3D: Port of framework for building 3D graphics drivers
* libdrm: Port of DRM (direct rendering manager) library
* libmpg123: Port of MPEG audio player
* truetype: Port of vector font render library

### Update
* boxlib: Library of UI widgets
    + New widgets: TextEditor, PathShow, Frame, ProgressBar, FileBrowser, ToolTip
    + Update widgets: TreeList, EditBox, CheckBox
    + Add box_lib.mac macros file to connect widgets
* console: Console UI library
    + Support aixterm bright color escape codes
    + Support scrolling with mouse
* libimg: Raster image manipulation library
    + New format decoders: TIFF, PCX, XCF, PNM, WBMP
    + New format encoders: PNG, BMP, PNM
    + New pixel formats: 1bpp, 2bpp, 4bpp, grayscale
    + Pixel format converting
    + Image scaling (bilinear)
* libini: Library for parsing and writing .ini files
    + Add ini.get_shortcut function to get human-readable shortcuts like Ctrl+A


Applications
------------

### New
* fb2read: FB2 ebook reader in Oberon
* VNCC: VNC Viewer
* zSea: Advanced image viewer
* docky: Configurable desktop dock
* deskcfg: Desktop configurator
* ImgF: Apply filters to images
* appearance: UI theme configurator
* installer: KolibriN installer
* notify3: System notification manager
* oberon07: Oberon compiler
* unzip: Graphical unarchiver utility
* vfc: Visual text comparer, diff tool
* codeview: Simple code viewer with syntax highlighting
* drvinst: User-friendly driver installer
* dictionary: Simple dictionary program
* pokemini: FIXME emulator
* GenFiles: File system stress test utility
* clipview: Clipboard viewer
* TEdit: BoxLib based text editor
* te_syntax: TextEditor syntax file editor
* PlanetViewer: Offline map app
* app_plus: FIXME
* fNav: File navigator
* tftpc: Console TFTP client
* sntp: Simple NTP client
* rshell: Simple reverse shell (TCP) demo
* Calypte: Ebook reader
* process: User-friendly task manager
* eskin: FIXME
* ftpd: Multithread FTP daemon
* ftpc: Console FTP client
* TCPserv: Very simple TCP server
* PPPoE: Simple PPPoE dialer
* socketdbg: Socket debugging tool
* downloader: HTTP file downloader
* IRCc: Featured IRC client
* synergyc: Synergy client
* sysmon: System resource monitor
* liza: Email client
* notes: Note taking app
* ping: ICMP ping program
* zkey: FIXME 
* mykey: Hotkey configuration app
* HDD Informer: SMART information reporter FIXME run and check
* snake: Advanced snake game with lots of levels
* scrsaver: Tiny screen saver configurable via text config file
* Nu pogodi: Remake of good old HW game
* Frog boaster: FIXME description game
* font_viewer: Kolibri font viewer
* firework: Fire animation demo using MMX, SSE, AVX, AVX2, AVX512
* unvwater: Water animation demo port from OctaOS
* cObj: View symbols of COFF files
* kpack: LZMA based compresser for data files, executables and the kernel
* Fplay: ffmpeg based multimedia player with hardware decoding and output
* KolFasmEdit: Visual environment for assembly programming
* LogEl: Modelling logic elements
* VoxelEditor: FIXME IgorA
* VoxelCreator: FIXME IgorA
* vox_tgl: FIXME IgorA
* software_widget: FIXME
* @volume: System volume mixer
* @open: FIXME
* life: Classic life game
* life2: Another life game
* life3: Yet another life game
* web: FIXME demo
* spiral: 2D colorful demo and screen saver
* 3dspiral: FIXME 3dwav? 3D spiral demo
* flatwav: FIXME demo
* cubeline: FIXME demo
* cubetext: FIXME demo
* gears: FIXME demo
* PrMK: FIXME emulator
* klavisha: Typing tutor
* free3d: FIXME demo
* tinypy: Tiny implementation of Python2 subset
* keybi: Keyboard indicators utility
* tanks: 2D tank game
* info3ds: Viewer of 3ds and stl file structure
* asciivju: View ASCII code tables
* fft: Fast Hartley transform
* fontconv: Kolibri font converter
* mcities: Turn based 'cities' game for two players
* cropflat: Force set screen size
* buddhabrot: FIXME demo
* qjulia: FIXME demo
* madmouse: Wrap mouse pointer on screen edges
* palitra: FIXME
* tmpdisk: Ramdisk manager
* ColorDialog: System color choosing dialog
* RunOD: Run with OpenDialog helper program
* searchap: Search and mount additional partition for KolibriOS applications
* piano: Virtual piano
* @icon: The new manager of desktop icons
* latency: System latencies monitor
* loaddrv: Load driver by name
* RDInfo: FIXME 0CodErr
* Timer: FIXME 0CodErr
* bomber: FIXME game
* KosChess: Player vs CPU chess game
* Almaz: FIXME game
* terminal: Terminal emulator
* pasta: Upload contents from clipboard or file to paste.kolibrios.org
* fspeed: Filesystem speed test
* calc+: FIXME
* KolSPForth: FIXME
* BabyPainter: FIXME
* game_center: FIXME
* mstate: Show state of mouse buttons
* tinfo: Show thread state information
* ft232cc: Control pins of FTDI chip
* 2048: FIXME game
* heliothryx: FIXME game
* Marble Match 3: FIXME game
* N-sider: FIXMEE game
* LazerTank: FIXME game
* 21days: FIXME game
* Binary Master: FIXME game
* Hang Programmer: FIXME game
* Kolibri Puzzle: FIXME game
* Dungeons: FIXME game
* Rusty Earth: FIXME game
* Pixie: Audio player
* barscfg: Docky and taskbar configuration utility
* mouse_cfg: Mouse configuration utility
* dicty: FIXME Leency
* txtread: Plain text reader
* kpm: Kolibri package manager
* FLI Player: FLI animation player
* 86duino-gpio: 86duino One GPIO demo
* 8086tiny: Tiny 8086 CPU emulator
* avra: FIXME
* netsurf: Port of HTML4 capable web browser
* uPDF: Port of PDF viewer with native interface
* c--: Port of C-- compiler
* unzip60: Port of ZIP unarchiver
* grafx2: Port of old-school image editor
* minimp3: Port of a small mp3 player
* m2view: FIXME

### Update
* Most network apps are converted to work with the new BSD compatible stack
* Replace SysXtree based open dialog with OpenDialog, remove SysXtree
* Add clipboard support
* Use boxlib UI widgets
* Use system-wide skin colors for UI
* Use new bigger smoothed fonts
* Use @notify to send desktop notifications
* Ray: 3D ray demo
* Animage: Raster image editor
    + Save image as PNG
    + Fast undo/redo algorithm
    + Fix window flickering on redraw
    + Change mouse cursors on work area
* WebView: Text-based web browser
    + Support named colors and italic text
* @rb: Right button click menu
    + FIXME
* netcfg: Network driver control center
    + Support multifunctional PCI devices
* scrshoot: Default screenshooter app
    + Save screenshots as PNG
* Memory Blocks: matching game
    + Complete rewrite FIXME
* heed: Hex editor
    + Many improvements to design and functionality
* kiv: Kolibri Image Viewer
    + Add image scaling support: fit-to-window and no-scale modes
    + Add slide show mode
    + Window title now includes the name of current file
    + Toggle toolbar with hotkey
    + Add configurable keyboard shortcuts
* View3DS: 3D model viewer
    + Support ASC file format
* @taskbar: Desktop panel
    + Tunable screen position (bottom/top) and look and feel
    + Read configuration from config file
    + Add hotkeys Win+D (clear/restore desktop), Win+R (start RUN application),
      PrintScreen (screenshot)
    + Ask programs to terminate instead of killing them
    + Close calendar on second click on time
* OpenDialog: System file dialog
    + Allow modes of operation: open file, save file, select directory
    + Use PathShow widget from boxlib
    + Edit and restore file name in SaveDialog
* rtfread: RTF format viewer
    + Optimize redraw, minimize blinking
* Eolite: Explorer-like file manager
    + FIXME History.txt
* cpu: Task manager
    + Hide system processes by default
    + Eliminate redraw flickering
* board: Debug log board
    + Allow user to see messages written before its start
    + Add stack dump after registers dump on crash
    + Save logs to file
    + Set log file name from the command line
    + Delete 'Dump' tab
    + Disallow more than one instance
* kgb: Kolibri graphics benchmark
    + Add benchmarks for sysfns 4, 36, 65, 73
    + Add benchmark for screen area access via GS register
    + Show difference in percent between two columns
    + UI impovements
* gmon: Monitor (by Ghost) of temperature, voltage, etc
    + Fix CPUID extended Family/Model detection for modern CPUs
* pcidev: PCI device information tool
    + Detect and display user-accessible PCI memory channels
    + Do not scan for other functions on single-function devices
    + Show N/A message if the IRQ is not assigned
    + Save devices list to file
    + Increase maximum IRQ level
* fasm: Flat assembler port
    + Sync with 1.71 upstream version
    + Use boxlib UI widget library
    + Add debug (-d) flag support
* mousemul: Mouse move emulation with numpad keys
    + Advanced acceleration mode
* rdsave: Ramdisk to file saver
    + Select options with keys
* netstat: Network statistics reporter
    + Add dots in IPv4 addresses and dashes in MAC addresses
    + Display number of queued (incoming) TCP packets
    + Show first network adapter by default (skip loopback)
* ktcc: Port of Tiny C Compiler
    + Updated to 0.9.26 upstream release
    + FIXME
* @ss: Screensaver
    + Accept saver type as command line argument
    + React on key pressing, not only mouse
* shell: Default shell
    + New commands: FIXME which (History.txt)
* tetris: Classic game
    + Next figure will not fall too fast if you press and hold DOWN arrow key
    + Ignore arrow keys when paused
* clicks: Casual game
    + FIXME Leency
* kosilka: FIXME game
    + Embed skin data into executable
* launcher: Startup manager
    + Accept quoted parameters
    + Allow tabs in place of spaces
* ac97snd: Audio player
    + Playlist support
* flood-it: FIXME game Leency
    + FIXME
* setup: System configurator
    + Remove unused settings (midi, sb16, hd settings, etc.)
    + Add option to mute speaker
* @zeroconf: Zero-configuration networking service
    + Support multiple network devices
    + Allow static DNS when using DHCP
    + Try 3 times to contact DHCP server before giving up
* @icon: Desktop icons
    + Allow moving icons with mouse
    + Use only 2 threads for all the icons
    + Use png icons with transparency
* tinypad: Text editor
    + Run compiled program in debugger by F10 key
* reversi: FIXME game
    + Add score printing
* mtdbg: Debugger
    + Support .map symbols file (as generated by GCC)
    + Display contents of MMX and FPU registers
    + User readable exception messages
* eyes: Freeform window demo
    + Fix blinking


Bootloader
----------

* grub4kos: Multiboot compliant kernel wrapper
* Read boot options from config.ini file
* New boot option BOOT_DEBUG_PRINT, duplicate debug output to the screen
* New boot option BOOT_LAUNCHER_START, whether to start very first userspace app


Other
-----

* i586-kos32 GNU toolchain
* Many new skins and icons
* UX improvements and cosmetic UI fixes
* Make '0' and 'O' symbols differ in default fonts
* Numlock on at boot
* Use /sys/settings directory for config files
* test_malloc: Offline test of kernel malloc/free routines
* mtrrtest: Offline test of MTRR reconfiguration
* Set up automatic incremental post-commit builds of the whole distro
* Introduce standard names and macros for syscall numbers
* Translate more docs and comments to English
* Code refactoring and cleanup
* Stability fixes, speed and size optimizations