Stații de lucru

OS - Windows 9093 Solutii

Reguli si plangeri 11 Solutii

OS - OS X 410 Solutii

Reguli de configurare 12 Solutii

Licentiere 18 Solutii

Securitate 182 Solutii

Copie de rezerva (Backup) 68 Solutii

Antivirus 72 Solutii

Aplicatii specifice 5248 Solutii

Hardware 291 Solutii

How to install Puppy Linux

Puppy Linux is a lightweight Linux distribution designed to run efficiently on both modern and older computers. Unlike many Linux distributions, Puppy is designed to be fast, portable, and capable of running entirely from RAM, resulting in quick boot times and responsive performance.

Some notable features include:

  • Extremely small download size
  • Low memory usage
  • Runs entirely from RAM (on systems with sufficient memory)
  • Can operate without a traditional installation
  • Excellent support for older hardware
  • Easy backup through save files or save folders
  • Includes a large collection of built-in applications
Part 1 – Choosing a Puppy Linux Version

Several Puppy Linux variants are available, each built on different package ecosystems.

Popular choices include:

  • Ubuntu-based Puppy (compatible with Ubuntu packages)
  • Debian-based Puppy (compatible with Debian repositories)
  • Slackware-based Puppy
  • Official Puppy Linux community releases

When selecting a version, consider:

  • Hardware age
  • Required software compatibility
  • Available RAM
  • Processor architecture (64-bit or 32-bit)

For most modern systems, a recent 64-bit release is recommended.

Part 2 – Preparing Installation Media

Requirements

  • USB flash drive (4 GB or larger)
  • Internet connection
  • ISO image
  • USB writing utility

Download the desired Puppy Linux ISO. Verify the checksum if one is provided. Create a bootable USB using your preferred imaging utility.

Part 3 – Booting Puppy Linux
  1. Insert the USB drive
  2. Enter the computer’s boot menu
  3. Select the USB device
  4. Boot Puppy Linux.

Most versions present a boot menu with default options.Choose the default entry unless you require special hardware options.

Part 4 – First Boot

Puppy usually starts directly into the desktop. Unlike many Linux distributions, you are often logged in automatically.

The desktop typically includes:

  • File manager
  • Terminal
  • Browser
  • Package Manager
  • Setup Wizard
  • System utilities
Part 5 – Initial Setup Wizard

Run the setup wizard if it does not start automatically.

Configure:

  • Keyboard layout
  • Display resolution
  • Time zone
  • Language
  • Locale
  • Hostname (if applicable)

Apply the settings.

Part 6 – Configure Networking

Wired Ethernet

Most wired connections are configured automatically.Verify connectivity by opening a browser or using:

ping puppylinux.com

Wi-Fi

Open the Network Wizard.

Select:

  • Wireless adapter
  • Available network
  • Enter Wi-Fi password
  • Connect

Save the profile for automatic reconnection.

Part 7 – Install to Internal Drive

Puppy Linux can operate in several ways:

Live USB

Runs directly from the USB drive.

Advantages:

  • No changes to internal disks
  • Portable
  • Easy testing
Frugal Installation

The recommended installation method.

Characteristics:

  • Uses only a few files
  • Shares partitions with other operating systems
  • Easy upgrades
  • Supports save files
  • Fast booting
Full Installation

A traditional Linux installation. Generally recommended only for specific use cases such as systems with very limited RAM or specialized requirements.

Part 8 – Frugal Installation

Launch the Puppy Installer.

Select:

  • Internal drive
  • Target partition

Copy:

  • vmlinuz
  • initrd
  • Main Puppy SFS file
  • Additional SFS modules if required

Install a bootloader.

Most recent systems use GRUB.Legacy BIOS systems may use GRUB Legacy or GRUB4DOS depending on the Puppy version.Reboot.

Part 9 – Save Files and Save Folders

One unique Puppy Linux feature is persistent storage.When shutting down for the first time, Puppy asks whether to save your session.Options include:

Advantages:

  • Portable
  • Easy backup
  • Fixed size

Typical sizes:

  • 512 MB
  • 1 GB
  • 2 GB
  • Larger as needed
Save Folder

Advantages:

  • Dynamic size
  • Better for large storage devices
  • No predefined size limit

Generally preferred on Linux-native filesystems.

Part 10 – Understanding the Filesystem

Important directories include:

/root

Default home directory.

/mnt

Mounted drives.

/etc

System configuration.

/usr

Applications.

/var

Logs and runtime data.

Part 11 – Updating Puppy Linux

Unlike rolling distributions, Puppy updates vary depending on the specific release.

Recommended approach:

  • Update package repositories
  • Install security updates when available
  • Upgrade individual applications as needed
  • Consider upgrading to a newer Puppy release periodically.
Part 12 – Package Management

Open Puppy Package Manager.

Features include:

  • Search packages
  • Install software
  • Remove packages
  • Manage repositories
  • View dependencies

Depending on the Puppy variant, packages may originate from:

  • Ubuntu
  • Debian
  • Slackware
  • Puppy repositories
Part 13 – Installing Additional Software

Examples include:

Development:

  • GCC
  • Make
  • CMake

Office:

  • LibreOffice

Graphics:

  • GIMP
  • Inkscape

Media:

  • VLC
  • Audacity

Development tools:

  • Git
  • Python
  • Node.js
Part 14 – Browser Installation

Many Puppy releases include a lightweight browser.

Alternatives include:

  • Firefox
  • Chromium
  • Pale Moon (where available)
  • Other compatible browsers

Install using the Puppy Package Manager or the package format supported by your Puppy variant.

Part 15 – Configure Audio

Open:

Setup → Sound Wizard

Verify:

  • Audio output
  • Microphone
  • Volume levels

Use the mixer utility to adjust sound levels.

Part 16 – Configure Printing

Open:

Printer Setup

Typical workflow:

  1. Detect printer.
  2. Install drivers if necessary.
  3. Configure the printer.
  4. Print a test page.

Many network printers are automatically detected.

Part 17 – Configure Display

Open the display configuration utility.

Adjust:

  • Resolution
  • Refresh rate
  • Multi-monitor settings (if supported)
  • Screen orientation

Apply and test changes.

Part 18 – Installing Drivers

Most hardware drivers are included in the Linux kernel.For proprietary graphics or wireless hardware, consult the documentation for your Puppy Linux variant to determine whether additional drivers are available.After installation, reboot if prompted.

Part 19 – Installing Development Tools

For software development, install:

  • GCC
  • G++
  • Make
  • Git
  • CMake
  • Python
  • OpenJDK (if needed)

Many Puppy releases also provide a “devx” SFS module containing compilers and development libraries that can be loaded without permanently installing every development package.

Part 20 – Automatic Startup

Applications can be started automatically during login.

Common startup items include:

  • Cloud synchronization
  • Clipboard managers
  • Custom scripts
  • Monitoring tools

Review the startup configuration provided by your Puppy version before adding applications.

Part 21 – Backups

Recommended backup strategy:

  • Backup the save file or save folder regularly
  • Backup personal files separately
  • Keep copies on an external drive
  • Test restoring backups occasionally.

Because most personal changes are stored in the save file/folder, copying it is often sufficient to preserve your environment.

Part 22 – Performance Optimization
  • Reduce startup applications
  • Remove unused packages
  • Use lightweight applications
  • Clear browser caches periodically.
  • Unload unnecessary services.

Puppy Linux is already highly optimized, so these steps generally yield modest improvements.

Part 23 – Security

Recommendations:

  • Use strong passwords where applicable.
  • Enable the firewall if your Puppy version provides one.
  • Install software only from trusted repositories.
  • Keep applications updated.
  • Avoid running unknown software with elevated privileges.
Part 24 – Useful Applications

Recommended software:

Productivity

  • LibreOffice
  • AbiWord

Internet

  • Firefox
  • Chromium

Media

  • VLC
  • MPV

Graphics

  • GIMP
  • Inkscape

Utilities

  • GParted
  • htop
  • rsync

Development

  • Git
  • Python
  • GCC.
[mai mult...]

NixOS installation guide

NixOS is a Linux distribution built around the Nix package manager, where the entire operating system is described as code. Instead of manually installing software and editing configuration files, you define your desired system state in configuration files.

Advantages include:

  • Fully reproducible systems
  • Atomic upgrades and rollbacks
  • Declarative package management
  • Reliable dependency isolation
  • Easy migration between machines
  • Excellent development environments

Part 1 – Preparation

Requirements

  • 8 GB RAM minimum (16 GB recommended)
  • 30+ GB storage
  • USB flash drive (4 GB or larger)
  • Internet connection
  • UEFI firmware (recommended)

Download the latest NixOS ISO and verify its checksum before writing it to a USB drive.

Part 2 – Booting
  1. Boot from the installation USB.
  2. Select the graphical installer or minimal installer.
  3. Open a terminal.

Become root if necessary:

sudo -i

Confirm networking:

ping nixos.org
Part 3 – Identify Storage

List disks:

lsblk

Example:

nvme0n1
├─nvme0n1p1
├─nvme0n1p2

Assume:

Disk:
/dev/nvme0n1
Part 4 – Partitioning

Using GPT:

parted /dev/nvme0n1 -- mklabel gpt

EFI partition:

parted /dev/nvme0n1 -- mkpart ESP fat32 1MiB 512MiB
parted /dev/nvme0n1 -- set 1 esp on

Root:

parted /dev/nvme0n1 -- mkpart primary 512MiB 100%
Part 5 – Filesystems

Format EFI:

mkfs.fat -F32 /dev/nvme0n1p1

Format root:

mkfs.ext4 /dev/nvme0n1p2
Part 6 – Mount
mount /dev/nvme0n1p2 /mnt

mkdir -p /mnt/boot

mount /dev/nvme0n1p1 /mnt/boot
Part 7 – Generate Configuration
nixos-generate-config --root /mnt

Files created:

/mnt/etc/nixos/configuration.nix

/mnt/etc/nixos/hardware-configuration.nix
Part 8 – Initial Configuration

Edit:

nano /mnt/etc/nixos/configuration.nix

Example:

{ config, pkgs, ... }:

{
  imports = [
    ./hardware-configuration.nix
  ];

  boot.loader.systemd-boot.enable = true;

  boot.loader.efi.canTouchEfiVariables = true;

  networking.hostName = "desktop";

  time.timeZone = "Europe/Bucharest";

  i18n.defaultLocale = "en_US.UTF-8";

  services.xserver.enable = true;

  services.displayManager.gdm.enable = true;

  services.desktopManager.gnome.enable = true;

  users.users.alex = {
    isNormalUser = true;
    extraGroups = [ "wheel" "networkmanager" ];
  };

  networking.networkmanager.enable = true;

  environment.systemPackages = with pkgs; [
    git
    vim
    wget
    curl
  ];

  system.stateVersion = "26.05";
}
Part 9 – Install
nixos-install

Set root password.

Reboot:

reboot

Remove the USB.

Part 10 – Enable Flakes

Edit:

/etc/nixos/configuration.nix

Add:

nix.settings.experimental-features = [
  "nix-command"
  "flakes"
];

Rebuild:

sudo nixos-rebuild switch
Part 11 – Convert to Flake

Directory:

/etc/nixos

Create:

flake.nix

Example:

{
  description = "Desktop";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  };

  outputs = { self, nixpkgs }:

  {
    nixosConfigurations.desktop =
      nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";

        modules = [
          ./configuration.nix
        ];
      };
  };
}

Rebuild:

sudo nixos-rebuild switch --flake /etc/nixos#desktop
Part 12 – Install Packages

Temporarily:

nix shell nixpkgs#ripgrep

Run once:

nix run nixpkgs#hello

Permanent:

environment.systemPackages = with pkgs; [
  firefox
  git
  neovim
  ripgrep
  fd
  htop
  tmux
];
Part 13 – Home Manager

Install Home Manager as a flake input.

Benefits:

  • User configuration as code
  • Dotfile management
  • Reproducible shell configuration
  • Declarative editor setup
  • Version-controlled user environment

Example modules:

  • Git
  • Zsh
  • Bash
  • Neovim
  • Alacritty
  • Kitty
  • VS Code
  • SSH
  • GPG
  • Starship
Part 14 – Garbage Collection

Delete old generations:

sudo nix-collect-garbage -d

Automatic cleanup:

nix.gc = {
  automatic = true;
  dates = "weekly";
  options = "--delete-older-than 30d";
};
Part 15 – Rollbacks

List generations:

sudo nix profile history

Rollback:

sudo nixos-rebuild switch --rollback

You can also select previous system generations directly from the bootloader if a rebuild prevents the system from booting.

Part 16 – System Upgrades

Update flake inputs:

nix flake update

Apply:

sudo nixos-rebuild switch --flake /etc/nixos
Part 17 – Useful Services

SSH:

services.openssh.enable = true;

Docker:

virtualisation.docker.enable = true;

PipeWire:

services.pipewire = {
  enable = true;
  pulse.enable = true;
};

Printing:

services.printing.enable = true;

Bluetooth:

hardware.bluetooth.enable = true;
Part 18 – Development

Example development shell:

{
  description = "Example dev shell";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

  outputs = { self, nixpkgs }:
  let
    pkgs = import nixpkgs {
      system = "x86_64-linux";
    };
  in {
    devShells.x86_64-linux.default =
      pkgs.mkShell {
        packages = with pkgs; [
          git
          gcc
          cmake
          python3
        ];
      };
}

Enter:

nix develop
Part 19 – Recommended Repository Layout
nixos/

├── flake.nix
├── flake.lock
├── hosts/
│   └── desktop
├── modules/
│   ├── networking.nix
│   ├── users.nix
│   ├── desktop.nix
│   ├── fonts.nix
│   └── services.nix
├── home/
│   ├── git.nix
│   ├── shell.nix
│   ├── nvim.nix
│   └── zsh.nix

Keeping configuration modular makes it easier to reuse components across multiple systems and simplifies maintenance.

Part 20 – Troubleshooting

Configuration errors

Validate before switching:

sudo nixos-rebuild test

Boot issues

  • Confirm the EFI partition is mounted at /boot.
  • Verify boot.loader.systemd-boot.enable = true;.
  • Ensure UEFI mode is enabled in firmware.

Network problems

Verify NetworkManager:

systemctl status NetworkManager

Flake errors

Refresh lock file:

nix flake update

Or remove flake.lock and regenerate it if dependency resolution becomes inconsistent.

[mai mult...]

Diagnosticarea și rezolvarea erorii „Kernel panic – not syncing: Attempted to kill init!”

1. Introducere și definirea erorii

Eroarea Kernel panic - not syncing: Attempted to kill init! reprezintă o stare critică de eroare neremediabilă în sistemele de operare Linux. În această stare, nucleul (kernel-ul) oprește complet executarea oricărei instrucțiuni pentru a preveni coruperea datelor sau deteriorarea fizică a sistemului de fișiere.

Mesajul indică direct faptul că primul proces lansat de kernel la pornirea sistemului (procesul cu PID 1, numit init sau systemd) a fost oprit neașteptat sau a fost terminat forțat (killed). Deoarece procesul init este „părintele” tuturor celorlalte procese din sistem, oprirea lui face imposibilă funcționarea în continuare a sistemului de operare.

2. Cauzele principale ale erorii

Defectarea sau prăbușirea procesului init are loc, în general, în prima fază de boot (încărcare) a sistemului și este cauzată de următoarele categorii de probleme:

A. Coruperea sau lipsa imaginii initramfs / initrd

Imaginea Initial RAM Disk (initramfs) conține driverele și modulele necesare kernelului pentru a putea citi și monta discul principal. Dacă această imagine este coruptă, lipsă sau a fost generată greșit după o actualizare de kernel, sistemul nu poate lansa init.

B. Probleme legate de configurarea Bootloader-ului (GRUB)

  • Anumiți parametri de boot din configurarea GRUB trimit kernelul către un disc greșit (ex: o adresă root=UUID=... incorectă).

  • Parametrul init= arată către o cale inexistentă (ex: /sbin/init lipsește sau este corupt).

C. Coruperea sistemului de fișiere sau a discului (Filesystem / Hardware)

  • Sector defect pe disc (SSD/HDD) în zona unde se află executabilul /sbin/init sau /lib/systemd/systemd.

  • Corupere cauzată de o oprire necorespunzătoare a alimentării cu energie electrică.

D. Lipsa spațiului pe disc în timpul actualizărilor (/boot plin)

O cauză extrem de frecventă pe servere și calculatoare de birou este umplerea partiției /boot. Dacă la un update de sistem (apt upgrade / dnf update) discul este $100\%$ plin, noul kernel sau imaginea initramfs se va scrie parțial, rezultând o imagine invalidă la următorul restart.

E. Neconcordanță între arhitectura sistemului și module

Executarea unui kernel pe $64$ de biți cu un proces init compilat pentru o altă arhitectură necompatibilă sau din cauza unor permisiuni de fișiere alterate (/sbin/init și-a pierdut drepturile de execuție chmod +x).

3. Ghid 

Când întâmpinați această eroare, sistemul nu mai poate porni normal. Rezolvarea necesită intervenția prin mediul de recuperare (GRUB sau un Live USB).

Pasul 1: Pornirea dintr-o versiune anterioară de Kernel (Meniul GRUB)

Aceasta este cea mai rapidă metodă de testare și recuperare:

  1. Reporniți sistemul și țineți apăsată tasta Shift sau Esc pentru a afișa meniul GRUB.

  2. Selectați Advanced options for Ubuntu/Debian/RHEL.

  3. Alegeți o versiune anterioară de kernel (de exemplu, o versiune mai veche care nu are eticheta recovery mode).

  4. Dacă sistemul pornește cu succes, problema este legată strict de ultimul kernel instalat sau de imaginea sa initramfs.

Pasul 2: Regenerarea imaginii initramfs

Dacă ați reușit să intrați într-un kernel vechi sau folosind un Live USB (prin metoda chroot), regenerați fișierele de boot:

  • Pe sisteme bazate pe Debian / Ubuntu:

    Bash

    sudo update-initramfs -u -k all
    sudo update-grub
    
  • Pe sisteme bazate pe RHEL / CentOS / Fedora:

    Bash

    sudo dracut --regeneration --force
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

Pasul 3: Repararea sistemului de fișiere (fsck)

Dacă eroarea este provocată de un disc corupt:

  1. Porniti dintr-un Live USB/CD de Linux.

  2. Deschideți un terminal și identificați partiția de sistem (ex: /dev/sda1 sau /dev/nvme0n1p2) cu comanda lsblk.

  3. Rulați verificarea și repararea partiției:

    Bash

    sudo fsck -y /dev/sda1
    

Pasul 4: Curățarea spațiului din partiția /boot

Dacă partiția /boot este plină și a blocat actualizarea:

  1. Porniți din Live USB și montati partiția de sistem.

  2. Ștergeți kernel-urile vechi nefuncționale sau fișierele temporare nefinalizate din /boot.

  3. Rulați comanda de curățare a pachetelor incomplete:

    Bash

    # Dintr-un mediu chroot:
    apt-get clean
    apt-get autoremove
    dpkg --configure -a
    

4. Măsuri de prevenție

  • Evitați umplerea partiției /boot: Configurați sistemul să păstreze doar 2-3 imagini de kernel (utilizați opțiuni de curățare automată precum Purgeremovedupes sau installonly_limit în managerul de pachete).

  • Nu opriți forțat calculatorul în timpul actualizărilor: Închiderea alimentării în timp ce se execută comenzi de tip update-initramfs sau dracut va deteriora garantat fișierele de boot.

  • Folosiți surse de alimentare neîntreruptibile (UPS): Pe servere de producție, întreruperile bruște de curent sunt principala cauză a coruperii procesului init și a sistemului de fișiere.

[mai mult...]

Diagnosticarea și rezolvarea erorii „Bus error (core dumped)” în Linux

1. Introducere și definirea erorii

Eroarea Bus error (core dumped) este generată în sistemele de operare de tip Unix/Linux atunci când procesorul (CPU) încearcă să acceseze o adresă de memorie RAM la care hardware-ul nu poate efectua o citire sau o scriere fizică.

Din punct de vedere al sistemului de operare, această eroare corespunde semnalului SIGBUS (Semnalul cu numărul 7). Când kernelul Linux trimite acest semnal unui proces, aplicația este oprită forțat, iar sistemul creează un fișier numit core dump (o imagine a stării memoriei din momentul prăbușirii) pentru analiză ulterioară.

2. Cauzele principale ale erorii SIGBUS

Spre deosebire de Segmentation Fault (SIGSEGV) — care apare când un program încearcă să acceseze memorie nealocată sau nepermisă din punct de vedere software —, Bus Error (SIGBUS) indică aproape întotdeauna o problemă de aliniere fizică, de acces la hardware sau de stocare/fișiere mapate.

Cele mai frecvente cauze sunt:

  1. Probleme de aliniere a memoriei (Memory Alignment Error):

    • Apare pe arhitecturi CPU mai stricte (cum ar fi ARM, SPARC) sau pe arhitecturi x86 în cazul instrucțiunilor vectoriale (AVX/SSE).

    • Se întâmplă când procesorul încearcă să citească un tip de date (de exemplu, un întreg pe 4 sau 8 octeți) de la o adresă de memorie care nu este divizibilă cu dimensiunea acelui tip de date.

  2. Eroare la fișierele mapate în memorie (mmap):

    • Dacă o aplicație folosește funcția mmap() pentru a încărca un fișier direct în memorie, iar fișierul de pe disc este trunchiat, șters sau devine inaccesibil în timp ce procesul încearcă să îl citească/scrie.

  3. Erori de citire/scriere fizică I/O (Disk / Hardware Failure):

    • Sector defect pe hard disk/SSD pe care se află fișierul de swap sau aplicația executată.

    • Probleme legate de rețea dacă se folosește un sistem de fișiere de rețea (NFS, SMB) care își pierde conexiunea la fișierul mapat.

  4. Instrucțiuni hardware defectuoase (Defecțiuni RAM):

    • Module de memorie RAM fizic defecte sau setări incorecte în BIOS (XMP/overclock instabil).

3. Ghid pas cu pas pentru rezolvare și diagnosticare

Pasul 1: Identificarea rapidă a fișierelor mapate și spațiului pe disc

Dacă eroarea apare la rularea unui program standard sau a unui utilitar de sistem (ex: python, node, un utilitar din rețea):

  • Verifică spațiul pe disc: Rulează df -h. Dacă disk-ul este plin ($100\%$), scrierile pe fișiere mmap pot eșua cu SIGBUS.

  • Verifică mount-urile de rețea: Dacă rulezi un script peste NFS sau un drive de rețea, asigură-te că conexiunea este stabilă.

Pasul 2: Analiza fișierului Core Dump cu gdb

Pentru a găsi linia exactă de cod din cauza căreia s-a prăbușit aplicația:

  1. Activați crearea fișierelor core dump în terminal:

    Bash

    ulimit -c unlimited
    
  2. Rulați din nou aplicația pentru a genera fișierul core.

  3. Deschideți fișierul core cu debugger-ul GNU (gdb):

    Bash

    gdb ./nume_executabil core
    
  4. În consola gdb, tastați comanda bt (backtrace) pentru a vedea funcția și linia exactă unde s-a emis semnalul SIGBUS.

Pasul 3: Rularea sub valgrind (pentru dezvoltatori)

Dacă analizați propriul cod (C/C++), valgrind poate detecta accesul nealiniat sau pointerii invalizi:

Bash

valgrind --tool=memcheck ./nume_executabil

Pasul 4: Testarea memoriei RAM (Hardware)

Dacă eroarea apare aleatoriu în diverse programe care funcționau normal în trecut, cauza poate fi hardware:

  • Verificați logurile kernelului cu comanda:

    Bash

    dmesg -T | grep -iE "memory|error|ecc|mce"
    
  • Rulați un test dedicat de memorie: MemTest86 sau utilitarul memtester direct din Linux.

4. Cum se previne Bus Error în Codul Sursă (C / C++)

Dacă sunteți dezvoltator software, iată cele mai bune practici pentru a evita SIGBUS:

  • Respectați alinierea structurilor: Nu folosiți casting direct de la un pointer de tip char* (1 byte) la un pointer de tip uint64_t* (8 bytes) fără să verificați alinierea adresei.

  • Folosiți directiva alignas (C++11/C11):

    C++

    alignas(8) char buffer[64]; // Garantează alinierea la 8 octeți
    
  • Tratarea corectă a apelului mmap: Când lucrați cu mmap, verificați întotdeauna dimensiunea fișierului folosind fstat() înainte de acces și capturați semnalul SIGBUS folosind sigaction().

[mai mult...]