quarta-feira, 26 de agosto de 2026

35 Anos de Linux

Em 25 de agosto de 2026 o Linux fez 35 anos de história!

O Linux completou 35 anos, provando que um projeto feito "só por hobby e que não seria grande" pode sim dominar o mundo (beijo, Linus Torvalds!).

Para comemorar, aqui está a radiografia definitiva dessa festa!

🥳 A Festa de Aniversário Geek

Linux: 35 Anos de Linux!

O bolo: Não tem sabor padrão; você precisa compilar os ingredientes e escolher sua própria interface de cobertura.

Os convidados: 99% dos supercomputadores do mundo, os servidores da NASA, bilhões de celulares Android e três gatos pingados usando o sistema no desktop.

O parabéns: Cantado em código binário com sotaque finlandês.

A treta: Uma discussão sem fim na mesa do bolo sobre qual distribuição é a melhor e por que o Windows é o verdadeiro "vilão" da história.

Mensagem original do Linus Torvalds na USENET em 25 de agosto de 1991:

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus (torv...@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

https://www.vivaolinux.com.br/noticia/35-anos-de-linux/

terça-feira, 25 de agosto de 2026

Ética e Moral - Nietzsche está Morto

 

   Vamos começar (eu e o leitor) com Mário Ferreira dos Santos no livro "Cristianismo: A religião do homem" e depois seguiremos com a "Genealogia da Moral" de Nietzsche.

   E não estamos falando de religião aqui, mas de Ética e Moral, uma das bases de toda Religião, da Filosofia e, por que não dizer, da vida!
   A partir do parágrafo 56, Mário começa a discorrer sobre o assunto - e não precisa se preocupar, não terá de contar os parágrafos, pois o livro foi escrito enumerado em parágrafos. Leia o livro todo, porém, caso quiser, vá direto a esse parágrafo 56.
   No parágrafo 59, Mário, em sua clareza costumeira, começa definindo etimologicamente: "...em grego, valor é axios e o homem é antrophos, daí chamarem a esses valores axioantropológicos".
   No parágrafo 60, Mário diz: "Os atos continuados constituem o costume (o que os gregos chamavam ethos e os latinos mos, moris, de onde vêm Ética e Moral)."
   A etimologia das palavras às vezes ajuda às vezes atrapalha; na maioria das vezes ajuda.
   Os atos éticos ou morais são atos que têm valor, porém, "valor" neste sentido refere-se à dignidade, não ao preço. Refere-se à categoria de Qualidade e não de Quantidade (Aristóteles), pois qualidade, nesta acepção, remete a "valor" e quantidade, nesta acepção, remete a preço.
   "Assim, toda vida prática do homem gira em torno da Ética."
   A partir do parágrafo 61, Mário começa a fazer a distinção entre Moral e Ética e diz que essa distinção não é arbitrária porque a Ética estuda o dever-ser humano e a Moral descreve e prescreve como se deve agir para realizar esse dever-ser.

   "A Moral é variante, mas a Ética é invariante."
   "Aqueles que dizem que a Ética é vária, porque a Moral é vária, confundiram a Moral com a Ética." Mário chama esses de "os detratores da Ética e da Moral" e diz que alguns fazem isso de propósito para obterem vantagens antiéticas, imorais e amorais.

   Mário nos diz, com base na realidade, no apodítico e na auto-evidência que a Ética deve ser consagrada ao universal.
   Por exemplo: matar é errado!... e ponto final. Todo ser humano sabe disso porque nasce sabendo disso, é um Princípio.
   Porém, caso eu matar em legítima defesa, é errado?
   Isso é uma discussão Moral.
   Dando um exemplo mais claro ainda: todo juri em que uma pessoa que matou alguém (homicídio) e é julgada pelas leis humanas, é uma discussão Moral, pois a Ética já foi infringida.
   Porém, por a Ética já ter sido infringida não significa que ela não é invariante, pois o termo "invariante" refere-se às leis divinas ou leis naturais, depende se você acredita ou não em Deus, mas tais leis são as mesmas: todo mundo sabe que matar é errado e mesmo tendo infringido o "não matar", o princípio continua sendo errado, mesmo que todo mundo faça.
   Daí vem o Direito Penal, Direito, Civil, Direito Natural, etc.
   E isso se aplica a não mentir, não roubar, não trair, etc.
   No Brasil, essa confusão é evidente e proposital feita pelos detratores da Ética e da Moral, como bem disse Mário.
   Confunde-se Ética com Moral, troca-se uma pela outra, não se sabe do que se está falando... vira uma confusão mental.
   Temos em empresas privadas e públicas, por exemplo, os tais "códigos de ética" (missão, valores, etc) que, na verdade, são códigos de moral porque permitem discussões; e não é uma simples questão de nominação porque a Ética é invariante (não enseja discussões) e a Moral é variante (enseja discussões).

   A Moral é a discussão em torno da Ética.

   Matar, mentir, roubar, trair, corromper, etc, todo ser humano sabe que isso é errado.
   As justificativas e desculpas que você dá do porquê você matou, traiu, mentiu, etc, são discussões Morais.
   E é necessário saber essa distinção, senão você não saberá distinguir entre uma e outra.
 
   Vamos imaginar que não exista Deus, que Ele seja uma invenção do ser humano, ou seja, teríamos certeza de que Deus não existe.
   Vamos imaginar que Moisés, o da Bíblia, quando subia ao Monte Sinai - segundo se sabe fez isso 8 vezes - para "falar" com Deus era tudo jogo de cena, Moisés subia para controlar o povo, sendo que naquela específica subida ao Monte Sinai na qual desceu com as Tábuas da Lei, inventou essa "estória" de um deus entalhando furiosamente as tábuas de pedra a raios e marteladas divinas no cinzel sagrado e sei-lá-mais-o-quê.

   Vamos mais além, vamos imaginar que a Bíblia inteira é uma alegoria, uma estória de ficção composta de várias estórias da carochinha. Vamos imaginar que os Dez Mandamentos sejam mesmo somente 10 e sejam, resumidamente (apesar das várias versões), os que se seguem:
1- Não ter outros deuses diante de mim.
2- Não tomar em vão o Nome do Senhor teu Deus.
3- Guarda o dia de sábado para santificar.
4- Honra teu pai e tua mãe.
5- Não matar.
6- Não pecar contra a castidade.
7- Não roubar.
8- Não mentir.
9- Não desejar a mulher do próximo.
10- Não cobiçar as coisas alheias.

   Independentemente de ter sido Deus ou Moisés quem entalhou as pedras, vamos analisar logicamente esses enunciados ou proposições ou imperativos... ou Mandamentos mesmo.

   Supondo que você não acredite que Deus exista e que você seja nada religioso, então podemos tirar os 3 primeiros da lista. Supondo que você não acredite que o Deus da Bíblia exista e que você seja um pouquinho religioso vamos tirar os 2 primeiros da lista porque você bem pode tirar o sábado (ou o domingo) para rezar para teu Deus, seja lá qual Ele for, para ir num balneário, ficar de folga com a natureza, ir à praia, ficar em casa fazendo nada, etc.

   Contudo, vamos analisar seguramente os outros 7 mandamentos que independem de você acreditar na existência de um ser supremo, de um Deus, de vários deuses, etc, independem até de você ser uma pessoa religiosa, espiritual, espirituosa, ateu, atéia, a toa, etc de novo.
   Vamos chamar esses 7 mandamentos agora de "Princípios Éticos". Vamos tomar o número 5, Não Matar, e analisar à luz da Filosofia.
   Sabe-se que "Princípio", em Filosofia, é aquilo que está no início e antes não precisa ter nada, nem mesmo uma explicação em palavras... pode até ter uma explicação em palavras, mas não se faz necessário.
   Todo mundo sabe que matar é errado em si, o ser humano nasce sabendo disso.
   Ética é, grosso modo, faça o certo e não faça o errado, tem de cumprir essas duas premissas ao mesmo tempo.
   Moral é a discussão em torno da Ética.
   Por exemplo, um Júri de homicídio é uma discussão Moral porque o Princípio Ético "Não Matar" já foi infringido, então, discutem-se as circunstâncias em torno disso. Mesmo você sendo ateu, religioso, etc, tudo é uma questão de Ética e Moral, simples assim.
   Na Moral, o ser humano discute e mente em torno dela. Legítima defesa, por exemplo: eu posso matar em defesa minha ou de terceiros? A resposta dessa pergunta vem de uma discussão Moral.
   Eu, vendo minha filha sendo estuprada, salvo ela e não mato o estuprador?
   "Não tenho sangue de barata", dirá você.
   Caso você seja uma pessoa essencialmente ética, você não matará em circunstância nenhuma.
   O único ser humano essencialmente Ético de quem se tem notícia foi Jesus Cristo, foi o único que cumpriu à risca os Mandamentos ou Princípios Éticos. É claro que Jesus não teve filha e, de bônus, fazia milagres, então a comparação foi, neste sentido, injusta, mas Jesus foi o único que conseguiu a façanha de Não matar, Não Mentir, etc. Pelo menos é o que se sabe.

   Nietzsche, em A Genealogia da Moral, passa dando alfinetadas no Cristianismo numa vã tentativa de combatê-lo, e apesar de terminar a vida louco no hospício - Nietzsche está morto e Deus está vivo - temos de concordar com ele em algumas partes.
   Na Primeira Dissertação ele levanta a questão entre "bom e ruim" e "bem e mau" e chega à conclusão de que esses dois valores contrapostos "travaram na terra uma luta terrível, milenar; e embora o segundo valor há muito predomine, ainda agora não faltam lugares em que a luta não foi decidida".
   O que nos interessa aqui é o que ele chama antes de "a moral dos escravos" que é pautada pela "moral dos senhores", pois aquela decorreu desta, baseada no ressentimento onde as fraquezas são transformadas em virtudes: "a impotência que não acerta contas é mudada em 'bondade'; a baixeza medrosa, em 'humildade'; a submissão àqueles que se odeia em 'obediência' (há alguém que dizem  impor essa submissão - chamam-no Deus). O que há de inofensivo no fraco, a própria covardia na qual é pródigo, seu aguardar-na-porta, seu inevitável ter-de-esperar, recebe aqui o bom nome de 'paciência', chama-se também a virtude; o não-poder-vingar-se chama-se não-querer-vingar-se, talvez mesmo perdão ('pois eles não sabem o que fazem - somente nós sabemos o que eles fazem!). Falam também do 'amor aos inimigos' - e suam ao falar disso." (página 38).
   "Os Judeus principiaram a revolta dos escravos na moral cuja rebelião tem atrás de si dois mil e tantos anos de história". Nietzsche confunde um pouco o Judaísmo com o Cristianismo, mas é compreensível, talvez fosse a insanidade já colocando as garras na mente dele. Brincadeiras à parte, o mundo atualmente parece-me baseado no ressentimento, na moral dos escravos, na mentira e no fingimento. O ser humano moderno é o ser humano do ressentimento. Ressentimento este que vem da estupidez de uma humanidade cada vez mais estupidificada.
   O que se pode concluir é que a "moral dos escravos" de Nietzsche é uma distorção da moral em si, "é algo próprio do ressentimento: a moral escrava sempre requer, para nascer, um mundo oposto e exterior, para poder agir em absoluto - sua ação é no fundo reação." Não posso deixar de lembrar nessa hora - não-sei-o-porquê - de Karl Marx e Engels e as "lutas de classes" que também são baseadas no ressentimento e na estupidez das massas.
   Por exemplo, entre o que chamam de Comunismo e o que chamam de Capitalismo, qual representa a moral dos escravos e qual representa a moral dos senhores?
   É somente uma mentira para manter uma luta ilusória entre duas entidades incorpóreas que tem nomes (signos) diferentes com o mesmo significado e o mesmo referente: concentração de dinheiro e poder nas mãos de poucas pessoas às custas da miséria e do sofrimento da maioria.

   Na Segunda Dissertação ele trata da "Culpa, má consciência e coisas afins".
   Na Terceira Dissertação: "O que significam ideais ascéticos?"

   Ética é isso: faça o certo e não faça o errado, Ética é Divina!
   Moral são as discussões em torno da Ética, Moral é do Ser Humano!




quinta-feira, 20 de agosto de 2026

Linux Kernel Version 7.2 Makes TSC Mandatory, Generating a Change in Philosophy


Any harm or mental instability resulting from poor translation, blame Google.

The Linux Kernel built its reputation, in part, on its efficiency on older machines that do not support modern operating systems like Windows 11. However, maintaining such extreme backward compatibility comes at a significant technical cost. The recent decision to mandate the TSC (Time Stamp Counter) on x86 processors demonstrates that maintainers have prioritized engineering evolution over the past. In practice, this means Linux has set aside nostalgia to focus on the technological performance of the future.

The latest version of the Linux Kernel (7.2, released on August 16, 2026) made the TSC a mandatory requirement for x86 processors, putting an end to decades of compatibility code that allowed the operating system to run on hardware lacking reliable TSC support. The technical change, implemented under the title "x86/cpu: Make CONFIG_X86_TSC unconditional," removes the configuration logic that previously allowed the kernel to be compiled without TSC support.

This change directly affects home users with very old machines (dating from before approximately 1993) because, starting with Linux Kernel 7.2, if you attempt to load the system on an x86 processor that lacks the TSC register, the kernel will refuse to boot, and the system will not start. This signals a significant shift in the Linux kernel's development philosophy, yet it is not the Linux equivalent of Windows 11's TPM 2.0 requirement. The TSC has been present in x86 processors since the launch of the Intel Pentium in 1993. If your processor was manufactured within the last three decades, it almost certainly includes it. The change actually aims to permanently remove compatibility code for hardware that is unlikely to run a modern Linux kernel. However, modern processors from the 1990s or later should not exhibit timing issues related to a lack of TSC support, although the kernel might refuse to boot on very old x86 CPUs that lack the TSC register.

Windows, macOS, and FreeBSD have long relied on the TSC, but their approach differs from how Linux handled it in kernel version 7.2. Windows, for instance, does not prevent the computer from booting if the processor lacks a TSC; instead, it makes that determination at runtime. If the TSC on a very old processor fails or proves unstable, Windows automatically switches to motherboard-based timers (such as HPET or the ACPI PM Timer). Of course, attempting to install Windows 11 on an older machine results in the installation failing outright, but this is due to other factors—such as TPM 2.0, Secure Boot, and processor generation (Microsoft limits official support to 8th-generation Intel processors—released in 2017—or AMD Ryzen 2000 series and newer).

What is TSC?

The TSC is a 64-bit internal physical register found within each x86 CPU core (each core has its own TSC register). It provides a basic clock-cycle counting feature, offering the precision essential for smooth operating system operation; it delivers high-resolution timing and can be read much faster than platform alternatives like HPET or the ACPI PM timer. Reading a TSC-based timer might take tens to hundreds of CPU cycles, whereas accessing a motherboard-based timer can take approximately 0.8 to 1.0 microseconds.

Having an individual TSC for each core caused issues: if a core changed its clock speed to save power, its TSC would count more slowly than that of a neighboring core (leading to time desynchronization in Linux). This is why modern CPUs feature "Constant TSC," which ensures all these internal registers run at the same speed regardless of power usage.

The TSC has three basic operational characteristics:

  • Cycle Counter: Its sole function is counting. For every clock cycle the processor executes, the register increments by 1.
  • Initialization: It starts at 0 the moment the processor receives power (hardware reset) and increments continuously.
  • Direct Reading: To read the register's value, programmers and the kernel use a specific assembly instruction called RDTSC (Read Time-Stamp Counter).

Historically, Linux maintained code to handle processors lacking a reliable TSC, dating back to the i486 era. The Linux 7.0 kernel dropped support for Intel 486 processors, and subsequent development cycles removed additional legacy hardware that had prevented the TSC from being treated as universal. Essentially, hardware predating the Pentium or from the i486 era will be affected. For decades, Linux maintained complex "fallback" routines to support timers based on older motherboards. Eliminating this dead code simplifies kernel maintenance. This is a case of technical debt—specifically, unnecessary maintenance consuming hours of highly skilled labor to support a statistically insignificant segment of users. Unlike Microsoft's controversial hardware requirements (such as TPM 2.0 for Windows 11), the TSC requirement for Linux 7.2 is simply a matter of engineering housekeeping regarding "museum pieces."

Checking TSC support and stability

To check if your computer supports TSC, run:

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource

The output should be `tsc`.

Verify this by checking the file of available sources:

$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource

The output should look something like this: tsc hpet acpi_pm

If "tsc" is missing from this list, it means the operating system has completely lost access to it.


For the TSC to be considered modern and perfectly stable, the CPU must possess two physical properties:

  • Constant TSC: The counter advances at a constant rate, even if the CPU changes frequency (turbo mode or power-saving mode).
  • Nonstop TSC: The counter does not stop running, even if the CPU core enters a deep sleep state (C-states).


You can check if your CPU has these features using the following command:

$ lscpu | grep -E "constant_tsc|nonstop_tsc"

Options: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi


Or by directly inspecting the processor flags:

$ cat /proc/cpuinfo | grep -E "constant_tsc|nonstop_tsc" | uniq

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb pti tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp vnmi


You can check if the kernel encountered any synchronization issues between CPU cores during boot:
$ sudo dmesg | grep -i tsc

[ 0.000000] tsc: Detected 3400.000 MHz processor
[ 0.000000] tsc: Detected 3399.906 MHz TSC
[ 0.036386] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x52 (or later)
[ 0.120153] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x3101f59f5e6, max_idle_ns: 440795259996 ns
[ 2.251217] clocksource: Switched to clocksource tsc-early
[ 3.281461] tsc: Refined TSC clocksource calibration: 3407.999 MHz
[ 3.281465] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd336761, max_idle_ns: 440795243819 ns
[ 3.281476] clocksource: Switched to clocksource tsc
[ 4.246774] vboxdrv: TSC mode is Invariant, tentative frequency 3407999019 Hz


To check if the TSC is working perfectly and is active:

  • clocksource: Switched to clocksource tsc: Your Linux kernel has tested, validated, and enabled the TSC as the system's primary time source. It is operational.

  • Refined TSC clocksource calibration: 3407.999 MHz: The kernel has calibrated your TSC frequency with high precision to approximately 3.4 GHz.

  • vboxdrv: TSC mode is Invariant: The VirtualBox driver has confirmed that your TSC is of the "Invariant" type—equivalent to the "Constant/Nonstop" type mentioned earlier. This means its speed does not change, making it safe for running virtual machines.

The line [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x52 (or later) indicates that your processor has an advanced feature called TSC_DEADLINE, which Linux uses for extremely fast task scheduling. However, the processor manufacturer (Intel or AMD) made a design error (known as an "erratum") during the chip's manufacturing. Since this error could cause system crashes (kernel panics) or security vulnerabilities, Linux has proactively disabled the feature to protect your PC.

To resolve this issue, you must update the processor microcode to version 0x52 or higher. Microcode acts like a corrective software update that is injected directly into the CPU during the boot process.

To view processor details:

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 158
model name : Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
...

If your processor is Intel (Ubuntu/Debian/Mint):

$ sudo apt update && sudo apt install intel-microcode
$ sudo reboot
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

If your processor is AMD (Ubuntu/Debian/Mint):

$ sudo apt update && sudo apt install amd64-microcode
$ sudo reboot
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

If you use Fedora/RHEL:

$ sudo dnf install microcode_ctl
$ sudo reboot
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

If you are using Arch Linux:

$ sudo pacman -S intel-ucode  # ou amd-ucode
$ sudo reboot
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

Void Linux with Intel

Enable the non-free repository, if you haven't already:
$ sudo xbps-install -S void-repo-nonfree

Install the Intel microcode:
$ sudo xbps-install -S intel-ucode

Update the system's initramfs:
$ sudo xbps-reconfigure -f linux$(uname -r | cut -d'.' -f1,2)
$ sudo reboot
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

Void Linux with AMD

Enable the non-free repository:
$ sudo xbps-install -S void-repo-nonfree

Install the AMD firmware package:
$ sudo xbps-install -S linux-firmware-amd
$ sudo reboot
Unlike Intel's, AMD's package automatically integrates with Void Linux's boot hooks, eliminating the need for extra configuration in most cases.
$ sudo dmesg | grep -i tsc
The line [Firmware Bug]: TSC_DEADLINE disabled should no longer appear.

Example:
$ sudo dmesg | grep -i tsc
[ 0.000000] tsc: Detected 3400.000 MHz processor
[ 0.000000] tsc: Detected 3399.906 MHz TSC
[ 0.036625] TSC deadline timer available
[ 0.125620] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x3101f59f5e6, max_idle_ns: 440795259996 ns
[ 2.290682] clocksource: Switched to clocksource tsc-early
[ 3.351524] tsc: Refined TSC clocksource calibration: 3408.000 MHz
[ 3.351528] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd3cd494, max_idle_ns: 440795223879 ns
[ 3.351578] clocksource: Switched to clocksource tsc
[ 5.018837] vboxdrv: TSC mode is Invariant, tentative frequency 3408000024 Hz

References