Heat the oil in a large heavy skillet over medium heat. Add guanciale/pancetta/bacon and sauté until crisp and golden.
Add the red pepper flakes and black pepper, stirring to combine. Add the onion and garlic. Cook, stirring often, until the onions are soft.
Add the crushed tomatoes and reduce the heat to low. Cook, stirring occasionally, until the sauce thickens (15-20 minutes).
While the pasta sauce simmers, bring a large pot of water to a boil. Season the water with salt. Add the pasta and cook, stirring occasionally, until 2 minutes before al dente.
Reserve 1 cup of pasta cooking water. Drain the pasta.
Add the drained pasta to the sauce in the skillet and toss vigorously with tongs to coat.
Add about ½ cup of the reserved pasta water and cook until the sauce coats the pasta and the pasta is al dente, about 2 minutes. You can add a little more pasta water if the sauce is too dry.
Transfer the pasta to bowls and top with cheese.