HOME

TheInfoList



OR:

Fiwix is an
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
kernel based on the
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
architecture and fully focused on being
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
compatible. It is designed and developed mainly as a hobbyist operating system, but it also serves for educational purposes. It runs on the
i386 The Intel 386, originally released as the 80386 and later renamed i386, is the third-generation x86 architecture microprocessor from Intel. It was the first 32-bit processor in the line, making it a significant evolution in the x86 archite ...
hardware platform and is compatible with a good base of existing GNU applications. It follows the
UNIX System V Unix System V (pronounced: "System Five") is one of the first commercial versions of the Unix operating system. It was originally developed by AT&T and first released in 1983. Four major versions of System V were released, numbered 1, 2, 3, an ...
application binary interface An application binary interface (ABI) is an interface exposed by software that is defined for in-process machine code access. Often, the exposing software is a library, and the consumer is a program. An ABI is at a relatively low-level of a ...
and is also mostly
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
2.0
system call In computing, a system call (syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, accessing a hard disk drive ...
ABI compatible. The FiwixOS 3.4 operating system is a Fiwix distribution. It uses the Fiwix kernel, includes the GNU toolchain ( GCC, Binutils, Make), it uses Newlib v4.4.0 as its
C standard library The C standard library, sometimes referred to as libc, is the standard library for the C (programming language), C programming language, as specified in the ISO C standard.International Organization for Standardization, ISO/International Electrote ...
, and
Ext2 ext2, or second extended file system, is a file system for the Linux kernel (operating system), kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed ...
as its primary file system. Between October 2022 and the whole 2023 the Fiwix kernel accepted a series of patches that were necessary to be able to be compiled with TCC. This was a necessary step into the whole bootstrapping process to build a complete Linux distribution from scratch, with Fiwix being currently a crucial part of it.


Features

Features according to the official website include: * Written in
ANSI C ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the ...
language ( Assembly used only in the needed parts). * GRUB
Multiboot Specification The Multiboot specification is an open standard describing how a boot loader can load an x86 operating system kernel. The specification allows any compliant boot-loader implementation to boot any compliant operating-system kernel. Thus, it all ...
v1 compliant. * Full 32bit protected mode non-preemptive kernel. * POSIX compliant (mostly). * For i386 processors and higher. * Process groups, sessions and job control. *
Interprocess communication In computer science, interprocess communication (IPC) is the sharing of data between running processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often categorized as clients ...
with
pipes Pipe(s), PIPE(S) or piping may refer to: Objects * Pipe (fluid conveyance), a hollow cylinder following certain dimension rules ** Piping, the use of pipes in industry * Smoking pipe ** Tobacco pipe * Half-pipe and quarter pipe, semi-circu ...
,
signals A signal is both the process and the result of Signal transmission, transmission of data over some transmission media, media accomplished by embedding some variation. Signals are important in multiple subject fields including signal processin ...
and UNIX-domain sockets. * UNIX System V IPC (semaphores,
message queue In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter- thread communication within the same process. They use a queue for messaging – the ...
s and shared memory). *
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
file locking File locking is a mechanism that restricts access to a computer file, or to a region of a file, by allowing only one user or process to modify or delete it at a specific time, and preventing reading of the file while it's being modified or delet ...
mechanism (POSIX restricted to whole file and advisory only). * Virtual memory splits (user/kernel): 3GB/1GB and 2GB/2GB. * Linux 2.0 ABI system calls compatibility (mostly). * ELF-386 executable format support (statically and dynamically linked). * Round Robin based scheduler algorithm (no priorities yet). * VFS abstraction layer. * Kexec support. * Ext2 filesystem support with 1KB, 2KB and 4KB block sizes. *
Minix MINIX is a Unix-like operating system based on a microkernel Software architecture, architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum. It was designed as a clone of the Unix operating syste ...
v1 and v2 filesystem support. * Linux-like Proc filesystem support (read only). * ISO9660 filesystem support with Rock Ridge extensions. * RAMdisk device support. *
Initial RAMdisk In Linux systems, initrd (''initial ramdisk'') is a scheme for loading a temporary root file system into computer memory, memory, to be used as part of the Linux startup process. initrd and initramfs (from INITial RAM File System) refer to two dif ...
(initrd) image support. * SVGALib based applications support. * PCI local bus support. *
Virtual console The Virtual Console was a line of downloadable retro video games for Nintendo's Wii and Wii U home video game consoles and the Nintendo 3DS family of handheld systems. The Virtual Console lineup consisted of titles originally released on pa ...
s support (up to 12). * Keyboard driver with Linux keymaps support. * PS/2 mouse support. *
Frame buffer A framebuffer (frame buffer, or sometimes framestore) is a portion of random-access memory (RAM) containing a bitmap that drives a video display. It is a memory buffer containing data representing all the pixels in a complete video frame. Mode ...
device support for VESA VBE 2.0+ compliant graphic cards. * Framebuffer console (fbcon) support. * Serial port
RS-232 In telecommunications, RS-232 or Recommended Standard 232 is a standard introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such as a compu ...
driver support. * Remote serial console support. *
QEMU The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
Bochs Bochs (pronounced "box") is a portable IA-32 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under the GNU Lesser General Public License. It supports emulation of the processor(s) (includ ...
-style debug console support. * Basic implementation of a Pseudo-Random Number Generator. *
Floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, a diskette, or a disk) is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a ...
device driver and DMA management. * IDE/ATA hard disk device driver. * IDE/ATA
ATAPI ATAPI (ATA Packet Interface) is a protocol used with the Parallel ATA (IDE) and Serial ATA standards so that a greater variety of devices can be connected to a computer than with the ATA command set alone. It carries SCSI commands and responses ...
CD-ROM device driver.


References


Further reading

* * *


External links

* Hobbyist operating systems Unix variants X86 operating systems {{operating-system-stub